%
% \iffalse meta-comment
%
% $Id: dinbrief.d%v 1.20 1995/01/12 01:12:12 Gussmann Exp $
%
% $Log: dinbrief.d%v $
% Revision 1.20  1995/01/12 01:12:12  Gussmann
% Fixed bug to work correctly with NFSS.
% PSNFSS gets now the right fonts.
% Only command \document changed.
%
% Revision 1.19  1994/12/21 23:54:46  Gussmann
% * Work around removed, which fixes a bug from the beta release
%   of LaTeX2e.
% * Date updated.
%
% Revision 1.18  1994/12/20 09:45:03  Gussmann
% *** empty log message ***
%
% Revision 1.17  1994/12/14 19:25:07  Gussmann
% \cs\envname can't being used in headlines.
%
% Revision 1.16  1994/12/14 18:25:36  Gussmann
% * Errors removed: - Definition of \concern contains \newbox command!
%                     \newbox moved outside.
%                   - Equation numbers not reset at the end of a letter.
%                     (Fixed)
% * Still more documentation added and some (a lot of) errors corrected.
% * Test for equation added.
%
% Revision 1.15  1994/12/14 14:18:44  Braune
% *** empty log message ***
%
% Revision 1.14  1994/12/09 14:56:53  Gussmann
% 10pt option removed from files dinbrief.tex and test10.tex
% in the \cmd\documentstyle-command.
%
% Revision 1.13  1994/12/09 14:26:08  Gussmann
% Documentation changed (only some little layout questions).
% Layout of documenation file dinbrief.tex is still unsatisfied.
%
% Revision 1.12  1994/12/09 13:24:53  Gussmann
% I've forgotten to include description of \cmd\closing{}.
% I deleted some doubbled explanations.
%
% Revision 1.11  1994/12/08 12:42:15  Gussmann
% Documentation finished.
% First public release.
%
% Revision 1.10  1994/12/02 02:59:21  Gussmann
% Documentation completed.
%
% Revision 1.9  1994/11/17 03:11:56  Gussmann
% Error corrected within the documentation.
%
% Revision 1.8  1994/11/17 02:44:47  Gussmann
% - More documentation added.
% - Errors corrected:
%   * \verb|\bottomtext| works only with the first letter in a
%     file. Fixed. \verb|\unhbox| changed to \verb|\unhcopy|.
%   * Fixed some errors in the documentation.
% - Test suite extended.
%
% Revision 1.7  1994/11/16 22:03:58  Gussmann
% Documentation has been updated and corrected.
%
% Revision 1.6  1994/11/16 19:26:52  Gussmann
% The document starts now with the user guide.
%
% Revision 1.5  1994/11/16 19:25:04  Gussmann
% *** empty log message ***
%
% Revision 1.4  1994/11/16 19:21:20  Gussmann
% *** empty log message ***
%
% Revision 1.3  1994/11/16 19:17:38  Gussmann
% *** empty log message ***
%
% Revision 1.2  1994/11/16 19:08:08  Gussmann
% *** empty log message ***
%
% Revision 1.1  1994/11/16  23:37:01  Gussmann
% Initial revision (rcs introduced)
%
% =======================================================================
%
% Copyright (C) 1993 by University of Karlsruhe (Computing Center).
% All rights reserved.
% For additional copyright information see further down in this file.
% 
% This file is part of the DINBRIEF package (PRELIMINARY TEST RELEASE)
% ------------------------------------------------------------------
% 
%  This system is distributed in the hope that it will be useful,
%  but WITHOUT ANY WARRANTY; without even the implied warranty of
%  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% 
% 
% IMPORTANT NOTICE:
% 
% For error reports in case of UNCHANGED versions see readme files.
% 
% Please do not request updates from us directly.  Distribution is
% done through Mail-Servers and TeX organizations.
% 
% You are not allowed to change this file.
% 
% You are allowed to distribute this file under the condition that
% it is distributed together with all files mentioned in 00readme.din.
% 
% If you receive only some of these files from someone, complain!
% 
% You are NOT ALLOWED to distribute this file alone.  You are NOT
% ALLOWED to take money for the distribution or use of either this
% file or a changed version, except for a nominal charge for copying
% etc.
% \fi
%
% \setcounter{StandardModuleDepth}{1}
% \newcommand\Lopt[1]{\textsf {#1}}
% \newcommand\file[1]{\texttt {#1}}
% \newcommand\Lcount[1]{\textsl {\small#1}}
% \newcommand\pstyle[1]{\textsl {#1}}
%
%
% \title{Standard Document Class `dinbrief'\\ for \LaTeX{} version 2e\\
%        Standard Document Style `dinbrief'\\ for \LaTeX{} version 2.09}
%
% \author{%
% Copyright \copyright\ 1993,\ 94 by Klaus Dieter Braune, Richard Gussmann
% }
%
% \maketitle
%
% \begin{abstract}
%   This document serves as User's Guide and as documentation of the new
%   \LaTeX-Style or a \LaTeXe-Class.  This class/style implements
%   a new document layout for writing letters, according to the rules
%   of DIN (Deutsches Institut f\"ur Normung, German standardization
%   institute). The User's Guide is written in German, since we assume
%   the style is of minor interest outside Germany.  Of course, most of
%   the macros are explained in English.
% \end{abstract}
%
% \tableofcontents
%
% \iffalse
%<*documentation|dintab>
% \fi
%
% \iffalse
\expandafter\ifx\csname documentclass\endcsname\relax
    \documentstyle[german]{article}
    \typeout{Using the command \string\documentstyle.}
  \else
    \documentclass[10pt]{article}
    \usepackage{german}
    \typeout{Using the command \string\documentclass.}
  \fi

\title{Standard Document Class `dinbrief'\\ for \LaTeX{} version 2e\\
       Standard Document Style `dinbrief'\\ for \LaTeX{} version 2.09}

\author{%
Copyright \copyright\ 1993,\ 94\\ by Klaus Dieter Braune, Richard Gussmann
}
% \fi
%
\newenvironment{decl}%
    {\par\small\addvspace{4.5ex plus 1ex}%
     \vskip -\parskip
     \noindent\hspace{-\leftmargini}%
     \begin{tabular}{|l|}\hline\ignorespaces}%
    {\\\hline\end{tabular}\par\nopagebreak\addvspace{2.3ex}%
     \vskip -\parskip}
%
\newcommand{\declline}[1]{\\\multicolumn1{|r|}{\small#1}}
%
\newcommand{\m}[1]{\mbox{$\langle$\emph{#1}$\rangle$}}
%
\renewcommand{\arg}[1]{{\tt\string{}\m{#1}{\tt\string}}}
%
\expandafter\ifx\csname oarg\endcsname\relax
  \newcommand{\oarg}[1]{{\tt[}\m{#1}{\tt]}}
\fi
%
\makeatletter
\expandafter\ifx\csname cmd\endcsname\relax
  \def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
\fi
%
\expandafter\ifx\csname cmd@to@cs\endcsname\relax
\def\cmd@to@cs#1#2{\char\number`#2\relax}
\fi
\makeatother
%
\expandafter\ifx\csname cs\endcsname\relax
\def\cs#1{{\tt\char`\\#1}}
\fi
%
\newcommand{\env}[2]{\cmd{#1}{\protect\tt\char`\{#2\char`\}}}
\newcommand{\envname}[1]{{\protect\tt#1}}
%
\germanTeX
%
\expandafter\ifx\csname emph\endcsname\relax
  \newcommand\emph[1]{{\em#1\/}}% This is \emph{not} the LaTeX2e
                                %  definition!
\fi

% \iffalse
\begin{document}
\maketitle
% \fi
%
% \iffalse
%</documentation|dintab>
% \fi
% \iffalse
%<*documentation>
% \fi
%
\renewcommand{\textfraction}{0.10}
\renewcommand{\topfraction}{0.65}
\renewcommand{\bottomfraction}{0.85}
%
\expandafter\ifx\csname sect\endcsname\relax
  \let\sect=\section
\fi
\expandafter\ifx\csname ssect\endcsname\relax
  \let\ssect=\subsection
\fi
\expandafter\ifx\csname sssect\endcsname\relax
  \let\sssect=\subsubsection
\fi
%
\sect{Benutzerhandbuch (User's Guide)}
%

Mit \LaTeX\ k"onnen (nat"urlich) auch Briefe geschrieben werden.
F"ur englische Briefe gibt es die Dokumentklasse \envname{letter}.
Deutsche Briefe k"onnen mit dem Stil \envname{dinbrief}
geschrieben werden.

In den Briefen k"onnen u.a.\ Formeln,
Tabellen und beliebige Listen verwendet werden.
In einem Dokument k"onnen mehrere Briefe geschrieben werden.
Die Gliederung in Abs"atze erfolgt durch Einf"ugen einer
Leerzeile (wie in \LaTeX\ "ublich).

\sect{Befehle in der {\protect\tt dinbrief}-Klasse}
\index{Briefe!DIN 676}\index{DIN-Brief}\index{Briefe!dinbrief@\envname{dinbrief}}

Bereits vor \env\begin{document} kann man Angaben machen, die f"ur
alle Briefe g"ultig sind, z.B.\ {\bf Absender\/} (\cs{address}
bzw.\ \cs{backaddress}), {\bf Absendeort\/} (\cs{place}),
{\bf Telefon\/} (\cs{phone}) und {\bf Unterschrift\/} (\cs{signature}).

\ssect{Aus der {\protect\tt letter}-Klasse "ubernommene Befehle}

Jeder Brief steht in einer eigenen \envname{letter}-Umgebung.
Der Empf"anger wird als Argument des
\env\begin{letter}-Befehls angegeben
(\env\begin{letter}\arg{Anschrift}).

Eine entscheidende Bedeutung beim Schreiben von Briefen
hat der \cs{opening}-Befehl. Nur dieser Befehl setzt
den Briefkopf, die Absenderangaben und die Adresse des
Empf"angers. Die {\bf Anrede des Empf"angers\/} wird als
Argument angegeben (\cmd\opening\arg{Anrede}).

Danach folgt der eigentliche Brieftext. Die abschlie"sende
{\bf Gru"sformel\/} wird mit dem Befehl \cmd\closing\arg{Gru"sformel}
gesetzt. Dieser Befehl f"ugt auch die maschinenschriftliche
Wiederholung der Unterschrift an, wie sie mit dem
\cs{signature}-Befehl festgelegt wurde.

Im Anschlu"s an die Gru"sformel werden {\bf Anlagen-\/}
(\cmd\encl\arg{Anlage}), {\bf Verteilvermerke\/}
(\cmd\cc\arg{Verteiler}) und das {\bf Postscriptum\/}
(\cmd\ps\arg{Postscriptum}) an den Brief angef"ugt.

Mit dem Befehl \cs{makelabels} (vor \env\begin{document})
werden zus"atzlich {\bf Adre"s-Etiketten\/} erzeugt.

Dar"uberhinaus wurden die oben erw"ahnten Befehle
\cs{address}, \cs{place} und \cs{signature} aus
der \envname{letter}-Klasse "ubernommen.
 
\begin{figure}[p]
\begin{center}
{\small
\begin{verbatim}
\documentclass[12pt]{dinbrief}
\usepackage{german}

\address{R"udiger Kurz\\
         Am See 1\\
         76133 Karlsruhe}
\backaddress{R. Kurz, Am See 1, 76133 Karslruhe}
 
\signature{R"udiger Kurz}
\place{Karlsruhe}
 
\begin{document}
\phone{0721}{222222}
\begin{letter}{Deutsche Bundespost\\
               Fernmeldeamt Karlsruhe\\
               Postfach 7300\\[\medskipamount]
               {\bf 76131 Karlsruhe}}
 
\yourmail{01.04.93}
\sign{123456}
\concern{Betrieb eines Mikrowellensenders}
 
\opening{Sehr geehrte Damen und Herren,}
 
anbei sende ich Ihnen eine Kopie der bisherigen Genehmigung f"ur
unseren Mikrowellenherd...
 
... Ihre Bem"uhungen im voraus vielen Dank.
 
\closing{Mit freundlichen Gr"u"sen,}
 
\ps{Wir bitten um schnelle Erledigung.}
\cc{Deutsche Bundespost\\
    Karlsruher Privatfunk \\
    S"uddeutscher Rundfunk}
 
\encl{Abschrift der Urkunde}
 
\end{letter}
\end{document}
\end{verbatim}}
\caption{Brief mit \LaTeX.}\label{brief}
\end{center}
\end{figure}

\ssect{Zus"atzliche Befehle im DIN-Brief}

Der Befehl \cmd\phone\arg{Vorwahl}\arg{Rufnummer/Durchwahl}
legt die {\bf Telefonnummer\/} des Absenders fest.
Sie wird in der Bezugszeichenzeile ausgegeben.

Der {\bf Bezug\/} auf einen empfangenen Brief ist m"oglich
mit Hilfe des Befehls
\cmd\yourmail\arg{Ihre Zeichen, Ihre Nachricht vom}.

Mit dem Befehl \cmd\sign\arg{Unsere Zeichen, unsere Nachricht vom}
kann eine {\bf eigene Kennzeichnung\/} des Briefes angegeben werden.

Mit dem Befehl \cmd\writer\arg{Sachbearbeiter} kann
der {\bf Name des Sachbearbeiters\/} festgelegt werden.

Die Bezugszeichenzeile wird nur gesetzt, falls einer der
Befehle \cs{yourmail}, \cs{sign} oder \cs{writer} verwendet
wird. Der Befehl \cs{writer} schaltet zus"atzlich auf das
in der DIN Norm~676 (Entwurf Mai~1991) festgelegte Layout um.

Der {\bf Betreff (die stichwortartige Inhaltsangabe)\/} des
Briefes wird durch den Befehl \cs{concern}\arg{Betreff}
angegeben. Mit \cs{backaddress} wird die Adresse festgelegt,
die als {\bf Absenderadresse im Brief\kern0pt fenster}
eingeblendet wird.

Abbildung~\ref{brief} enth"alt ein Beispiel f"ur einen Brief.
Die Anwendung der Befehle und ihre Reihenfolge in der Quelldatei
kann dem Beispiel entnommen werden.

F"ur alle, denen das "`Fenster"' um die Adresse nicht gef"allt,
besteht die M"oglichkeit, durch Angabe von
\cmd\nowindowrules\index{nowindowrules@\verb+\nowindowrules+}
vor dem Befehl \cmd\opening\ dieses abzuschalten.
Durch \cmd\windowrules\index{windowrules@\verb+\windowrules+} l"a"st es
sich wieder aktivieren.
 
Die Faltmarkierung am linken Papierrand wird durch den Befehl
\cmd\nowindowtics\index{nowindowtics@\verb+\nowindowtics+} ab- und mit
\cmd\windowtics\index{windowtics@\verb+\windowtics+} wieder angeschaltet.

\ssect{Befehlsreferenz}

\begin{description}
  \item[\env\begin{letter}\arg{{Anschrift}} \dots\ \env\end{letter}] \hfil\break
        Diese Befehle rahmen jeden einzelnen Brief ein. Die
        Anschrift des Em\-pf"an\-gers wird als Argument des Befehls
        \env\begin{letter}\arg{Anschrift} angegeben.
        Die einzelnen Zeilen in der Anschrift werden durch
        \cmd\\ getrennt.
        Es d"urfen weitere Briefe folgen.

  \item[\cmd\signature\arg{Unterschrift des Absenders}] \hfil\break
        Dieser Befehl legt die maschinenschriftliche
        Wiederholung der Unterschrift fest.
        Der Befehl gilt solange, bis ein weiterer
        \cmd\signature-Befehl eine neue "`Unterschrift"'
        festlegt.

  \item[\cmd\address\arg{{Name und Adresse des Absenders}}] \hfil\break
        Die Adresse des Absenders wird vereinbart.
        Dieser Befehl gilt f"ur den laufenden und alle
        weiteren Briefe; er gilt solange, bis ein
        weiterer \cmd\address-Befehl angegeben wird.

  \item[\cmd\backaddress\arg{{Absenderadresse im Brief\kern 0pt fenster}}] \hfil\break
        Der Befehl legt die Anschrift des Absenders oben im
        Anschriftenfeld des Briefs fest.

  \item[\cmd\place\arg{{Ortsangabe im Brief}}] \hfil\break
        Mit diesem Befehl wird der Absendeort angegeben, der
        zusammen mit dem Datum im Briefkopf ausgegeben wird.

  \item[\cmd\date\arg{{Briefdatum}}] \hfil\break
        Soll als Absenedatum {\sl nicht\/} das aktuelle
        Tagesdatum (des Rechners) eingesetzt werden,
        kann mit diesem Befehl das Datum
        explizit angegeben werden.

        Ohne diesen Befehl wird das aktuelle Tagesdatum
        im Brief verwendet.

  \item[\cmd\yourmail\arg{{Ihre Zeichen, Ihre Nachricht vom}}] \hfil\break
        Der Befehl legt den Inhalt des Feldes {\bf Ihre
        Zeichen, Ihre Nachricht vom\/} in der
        Bezugszeichenzeile fest.

  \item[\cmd\sign\arg{{Unsere Zeichen (, unsere Nachricht vom)}}] \hfil\break
        Dieser Befehl legt den Inhalt des Feldes
        {\bf Unsere Zeichen \dots\/} fest.

  \item[\cmd\phone\arg{{Vorwahl}}\arg{{Rufnummer/Durchwahl}}] \hfil\break
        Die Telefonnummer aufgeteilt nach Vorwahl und Rufnummer oder
        Durchwahl wird mit dem Befehl \cmd\phone{} vereinbart. Diese
        Angaben werden in der Bezugszeichenzeile ausgegeben.

  \item[\cmd\writer\arg{{Sachbearbeiter}}] \hfil\break
        Die Neufassung der Norm DIN~676 vom Mai 1991 sieht in
        der Bezugszeichenzeile ein weiteres Feld f"ur den
        Sachbearbeiter vor. Mit dem Befehl \cmd\writer{}
        kann ein solcher Sachbearbeiter angegeben werden.

        {\sl Die Verwendung dieses Befehls schaltet auf die
        Darstellung des Briefes nach der Norm
        DIN~676 vom Mai 1991 um.\/}

  \item[\cmd\concern\arg{{Betreff}}] \hfil\break
        Mit diesem Befehl wird der Betreff gesetzt, der den
        Empf"anger "uber den Gegenstand des Briefes
        informiert.

  \item[\cmd\centeraddress] \hfil\break
        Die Empf"angeranschrift wird im Brief\kern 0pt fenster
        vertikal zentriert.

  \item[\cmd\normaladdress] \hfil\break
        Die Empf"angeranschrift wird im Anschriftenfeld unten gesetzt.

  \item[\cmd\opening\arg{{Anrede}}] \hfil\break
        Dieser Befehl vereinbart die Anrede des Empf"angers und setzt
        den Briefkopf, die Empf"angerangaben, eine eventuell vorhandene
        Bezugszeichenzeile, den Betreff und die Anrede des Empf"angers.

        {\bf Dieser Befehl darf nicht fehlen!\/}

  \item[\cmd\closing\arg{{Gru"sformel}}] \hfil\break
        Der Befehl \cmd\closing{} setzt die Gru"sformel und nach
        drei Leerzeilen die maschinenschrifliche Wiederholung
        der Unterschrift.

  \item[\cmd\encl\arg{{Anlagen}}] \hfil\break
        Der Vermerk "uber dem Brief beigef"ugte Anlagen
        wird mit dem Befehl \cmd\encl{} an den Brief
        angeh"angt. Die einzelnen Eintragungen k"onnen
        durch \cmd\\{} getrennt werden.

        Die Reihenfolge der Verwendung der Befehle
        \cmd\encl, \cmd\cc{} und \cmd\ps{} ist
        beliebig. Die Norm empfiehlt allerdings
        den Anlagenvermerk vor dem Verteilvermerk
        anzubringen.

  \item[\cmd\cc\arg{{Verteiler}}] \hfil\break
        Der Vermerk "uber weitere Empf"anger dieses Briefes wird
        mit dem Befehl \cmd\cc{} gesetzt. Die einzelnen Eintragungen
        k"onnen durch \cmd\\ getrennt werden.

  \item[\cmd\ps\arg{{Postscriptum}}] \hfil\break
        Gesch"aftsbriefe enthalten kein Postskriptum.
        Es wurde trotzdem die M"og\-lich\-keit geschaffen,
        ein solches zu verwenden. Mit dem Befehl
        \cmd\ps{} wird ein Postskriptum gesetzt.

  \item[\cmd\makelabels] \hfil\break
        Dieser Befehl mu"s in der Pr"aambel stehen; also
        zwischen \cmd\documentstyle{} oder \cmd\documentclass{}
        und dem \env\begin{document}-Befehl.
        Er aktiviert das Ausdrucken von Adress-Etiketten.

  \item[\cmd\labelstyle\arg{{Stil der Label}}] \hfil\break
        Dieser Befehl vereinbart das Layout der
        Adress-Etiketten. Es gibt Drucker, die in der
        Lage sind, Briefumschl"age zu bedrucken. Mit diesem
        Befehl legt man die Form der Briefumschl"age fest.

        {\sl Zur Zeit steht nur das Layout \env\labelstyle{plain}
        zur Verf"ugung.\/}

  \item[\cmd\bottomtext\arg{{Feld f\"ur Kapitalgesellschaften}}] \hfil\break
        Am Fu"s der ersten Briefseite werden Gesch"aftsangaben und
        zus"atzlich bei Kapitalgesellschaften gesellschaftsrechtliche
        Angaben angegeben. Der Befehl \cmd\bottomtext{} vereinbart
        diese Angaben.

        {\sl Dieser Befehl mu"s nach \env\begin{document}{} stehen.\/}

  \item[\cmd\windowrules] \hfil\break
        Das Anschriftenfeld im Brief wird durch Linien ober-
        und unterhalb vom "ubrigen Brief abgegrenzt.
        Die Hervorhebung wird aktiviert.

  \item[\cmd\nowindowrules] \hfil\break
        Der Befehl schaltet den Rahmen ab.

  \item[\cmd\windowtics] \hfil\break
        Es werden Faltmarkierungen am linken Briefrand
        geruckt.

  \item[\cmd\nowindowtics] \hfil\break
        Es werden keine Faltmarkierungen am linken Briefrand
        ausgedruckt.

  \item[\cmd\disabledraftstandard] \hfil\break
        Der Brief wird entsprechend den
        Vorschriften der Norm DIN~676 vom Dezember 1976 auf
        dem Briefbogen ausgegeben.

  \item[\cmd\enabledraftstandard] \hfil\break
        Der Brief wird entsprechend den
        Vorschriften des Entwurfs der Norm DIN~676 vom
        Mai~1991 auf dem Briefbogen ausgegeben.
\end{description}

% \iffalse
%</documentation>
% \fi
% \iffalse
%<*documentation|dintab>
% \fi

\begin{table}[h]
\caption{Zusammenfassung der Dinbrief-Befehle:}\index{dinbrief!Befehle}

\begin{center}
\begin{tabular}{l}
  \hline
    \verb|\begin{document}|                                          \\
    \verb|\end{document}|                                            \\
  \hline
    \verb|\begin{letter}|\arg{{Anschrift}}                           \\
    \verb|\end{letter}|                                              \\
  \hline
    \verb|\signature|\arg{Unterschrift des Absenders}           \\
    \verb|\address|\arg{{Name und Adresse des Absenders}}       \\
    \verb|\backaddress|\arg{{Absenderadresse im Brieffenster}}  \\
  \hline
    \verb|\place|\arg{{Ortsangabe im Brief}}                    \\
    \verb|\date|\arg{{Briefdatum}}                              \\
    \verb|\yourmail|\arg{{Ihre Zeichen, Ihre Nachricht vom}}    \\
    \verb|\sign|\arg{{Unsere Zeichen (, unsere Nachricht vom)}} \\
    \verb|\phone|\arg{{Vorwahl}}\arg{{Rufnummer/Durchwahl}}     \\
    \verb|\writer|\arg{{Sachbearbeiter}}                        \\
  \hline
    \verb|\concern|\arg{{Betreff}}                              \\
    \verb|\opening|\arg{{Anrede}}                               \\
    \verb|\closing|\arg{{Gru"sformel}}                          \\
  \hline
    \verb|\centeraddress|                                       \\
    \verb|\normaladdress|                                       \\
  \hline
    \verb|\encl|\arg{{Anlagen}}                               \\
    \verb|\ps|\arg{{Postscriptum}}                            \\
    \verb|\cc|\arg{{Verteiler}}                               \\
  \hline
    \verb|\makelabels|                                        \\
    \verb|\labelstyle|\arg{{Stil der Label}}                  \\
  \hline
    \verb|\bottomtext|\arg{{Feld f\"ur Kapitalgesellschaften}}\\
  \hline
    \verb|\nowindowrules|                                     \\
    \verb|\windowrules|                                       \\
    \verb|\nowindowtics|                                      \\
    \verb|\windowtics|                                        \\
  \hline
    \verb|\disabledraftstandard|                              \\
    \verb|\enabledraftstandard|                               \\
  \hline
\end{tabular}
\end{center}
\end{table}

% \iffalse
%</documentation|dintab>
% \fi
% \iffalse
%<*documentation>
% \fi

\begin{table}[h]
\caption{"Uberschriftvariablen und deren Inhalt}
\index{dinbrief!"Uberschriftvariablen}

\begin{center}
(Voreinstellung entspricht DIN)

\begin{tabular}{l}
 \hline
  \verb|\ccname|\{{\tt Verteiler}\}        \\
  \verb|\enclname|\{{\tt Anlage(n)}\}      \\
  \verb|\psname|\{{\tt PS}\}               \\
 \hline
  \verb|\phonemsg|\{{\tt Telefon}\}        \\
  \verb|\signmsgold|\{{\tt Unsere Zeichen}\}  \\
  \verb|\signmsgnew|\{{\tt Unsere Zeichen, unsere Nachricht vom}\}  \\
  \verb|\yourmailmsg|\{{\tt Ihre Zeichen, Ihre Nachricht vom}\}  \\
 \hline
\end{tabular}
\end{center}

\end{table}

%
\ssect{Briefkopf}\index{Briefkopf}
%
Bei h"aufigem Briefeschreiben kommt sicher bald der
Wunsch nach einem eigenen Briefkopf auf; auch dies ist
mit \LaTeX\ zu verwirklichen.
Am besten er"offnet man sich in seiner Briefdatei (die man
sicher fr"uher oder sp"ater anlegen wird) ein File mit dem
Namen {\tt brfkopf.tex}. In dieses kann man z.B.\ den Briefkopf
in Abb.~\ref{briefkopf} aufnehmen.

\renewcommand{\textfraction}{0.35}

\begin{figure}[p]
\begin{center}
\begin{verbatim}
\newlength{\UKAwd}
\newlength{\ADDRwd}
%
\font\fa=cmcsc10  scaled 1440
\font\fb=cmss12   scaled 1095
\font\fc=cmss10   scaled 1000
%
\def\briefkopf{
 \settowidth{\UKAwd}{\fa Institut f"ur Verpackungen}
 \settowidth{\ADDRwd}{\fc EARN/BITNET: yx99 at dkauni2}
%
 \vspace*{7truemm}
 \raisebox{-11.7mm}{\unilogo{15}}
 {\fc\hspace{.7em}}
 \parbox[t]{\UKAwd}{
        \centering{\fa Universit\"at Gralsruhe} \\
        \centering{\fa Institut f"ur Verpackungen} \\[.5ex]
        \centering{\fb Prof.\ Dr.\ Fritz Schreiber}
        }
 \hfill
 \parbox[t]{\ADDRwd}{
        \fc Engesserstr.\ 9 $\cdot$ Postfach 6980 \\
        \fc 76128 Karlsruhe\\
        \fc Telefon: (0721) 608-9790 \\
        }  }
%
\signature{Prof.\ Dr.\ Fritz Schreiber}
\place{Karlsruhe}
\address{\briefkopf}
\phone{(0721)}{608-9790}
\def\FS{Prof.\,F.\,Schreiber, Univ.\,Karlsruhe,
        Postf.\,6980, 76128\,Karlsruhe\rule[-1ex]{0pt}{0pt}}
\end{verbatim}
\caption{Definition eines Briefkopfs}\label{briefkopf}
\end{center}
\end{figure}

Am Anfang des Briefes sollte nun der Befehl \verb+\input{brfkopf}+
aufgenommen werden gefolgt von \verb+\address{\myaddress}+
\index{myaddress@\verb+\myaddress+}. Dies sorgt
f"ur die gew"unschte Ausgabe des Briefkopfes am Beginn des Briefes.
Nat"urlich lassen sich auch andere als die hier verwendeten Schriftarten
verwenden.
 
\ssect{Kopfzeilen}\index{Kopfzeilen}
 
Es stehen verschiedene Kopfzeilen zur Verf"ugung die "uber die
Option \linebreak[4]\verb+\pagestyle{...}+\index{pagestyle@\verb+\pagestyle+}
ausgew"ahlt werden k"onnen.
Bei \verb+plain+\index{plain} wird eine Seitennumerierung bei mehrseitigen
Briefen in der Fu"szeile eingeblendet, die Kopfzeile bleibt leer.
Durch \verb+headings+\index{headings} wird die Kopfzeile mit einer
Anrede und der Seitenzahl bei mehrseitigen Briefen gesetzt.
 
\ssect{Briefe in englischer oder franz"osischer Sprache}
 
Wer Briefe in anderen Sprachen schreiben m"ochte, kann f"ur Englisch und
Franz"osisch die Trennung (abh"angig von der Installation) und Befehle f"ur
Buchstaben mit Akzenten mit dem Befehl
\cmd\selectlanguage\arg{Sprache}
\index{selectlanguage@\verb+\selectlanguage+} umschalten.
Das Umsetzen von Bezeichnungen z.B.\ f"ur Anlage \dots{} mu"s explizit durch
Befehle erfolgen, die in der Dokumentation zum {\tt dinbrief} beschrieben sind.

 
\ssect{Serienbriefe}\index{Serienbriefe}
 
Mit \LaTeX\ lassen sich auch Serienbriefe schreiben. Man ben"otigt dazu
nur ein kleines Makro wie z.B. das folgende:

\begin{center}
\begin{minipage}{0.75\textwidth}
\begin{verbatim}
\def\mailto#1{
  \begin{letter}{#1}
  \input{brftext}
  \end{letter}}
\end{verbatim}
\end{minipage}
\end{center}
 
Mit dem Befehl \verb+\input{brftext}+ wird die Datei geladen, die den Text f"ur
den Serienbrief enth"alt. In einer weiteren Datei stehen unsere Adressaten im
folgenden Format:

\begin{center}
\begin{minipage}{0.75\textwidth}
\begin{verbatim}
\mailto{Karle Huber\\
        Lichtensteinstr. 45\\[\medskipamount]
        77777 Hintertupfingen}
\mailto{Anna H"aberle\\
        Wallstra"se 7\\[\medskipamount]
        88888 L"andle}
\end{verbatim}
\end{minipage}
\end{center}
 
Die Briefe k"onnen nun mit einer Umgebung wie der in Abbildung~\ref{serie}
ausgedruckt werden. In der Zeile \verb|\input{#address}| ist der
Platzhalter \verb|#address| durch den Dateinamen zu ersetzen.

\begin{figure}[p]
\begin{center}
\begin{verbatim}
\documentclass[12pt]{dinbrief}
\usepackage{german}
 
\input{brfkopf}
\address{\myaddress}
\backaddress{R. Kurz, Am See 1, 76139 Karlsruhe}
 
\signature{R. Kurz}
\place{76139 Karlsruhe}
 
\def\mailto#1{                % zum ausdrucken von
                              % Serienbriefen
  \begin{letter}{#1}
  \input{brftext}             % Datei, die den Text enthaelt
  \end{letter}}
 
\begin{document}
 
\input{#address}              % Adress-Datei
 
\end{document}
\end{verbatim}
\caption{Erstellen von Serienbriefen}
\label{serie}
\end{center}
\end{figure}

Beachten sollte man, da"s dann der Text in der Datei {\tt brftext.tex}
direkt mit
\verb+\opening{...}+ beginnt (also kein \verb+\begin{letter}+ und
\verb+\end{letter}+ enth"alt) und mit \verb+\closing{...}+ bzw.
\verb+\ps{...}+ abschlie"st.
 
Ein Beispiel f"ur die Datei {\tt brftext.tex} finden Sie in
Abbildung~\ref{brftext}.
 
\begin{figure}[p]
\begin{center}
\begin{verbatim}
\opening{Betrieb eines Mikrowellensenders}
 
Sehr geehrte Damen und Herren,
 
anbei sende ich Ihnen eine Kopie der bisherigen Genehmigung f"ur
unseren Mikrowellenherd...
 
... Ihre Bem"uhungen im voraus vielen Dank.
 
\closing{Mit freundlichen Gr"u"sen,}
 
\ps{Wir bitten um schnelle Erledigung.}
\cc{Deutsche Bundespost\\
    Karlsruher Privatfunk\\
    S"uddeutscher Rundfunk}
 
\encl{Abschrift der Urkunde}
\end{verbatim}
\caption{Rumpf eines Serienbriefes}
\label{brftext}
\end{center}
\end{figure}

\ssect{Einige Regeln f"ur das Briefeschreiben}

Dieser Abschnitt enth"alt Passagen aus den
Normen DIN~5008 (Regeln f"ur das Maschinenschreiben) und
DIN~676 (Gesch"aftsbrief), erg"anzt um einige
zus"atzliche Hinweise und Tips.
Der Abschnitt erhebt keinen Anspruch auf
Vollst"andigkeit. Er soll Anf"angern wie auch
Ge"ubten einen "Uberblick "uber die wichtigsten
Regeln geben. Ferner werden die Grenzen der
vorliegenden Version aufgezeigt und es wird
auf bekannte Fehler hingewiesen.

\begin{enumerate}
  \item {\bf Zeilenabstand}

        Es wird mit einfachem Grundzeilenabstand geschrieben.

  \item {\bf Anschriftenfeld}

        Die Angaben im Anschriftenfeld werden auf
        folgende Weise gegliedert:
        \begin{enumerate}
          \item Sendungsart, Versendungsform, Vorausverf"ugung
          \item Leerzeile
          \item Empf"angerbezeichnung
          \item Postfach oder Stra"se und Hausnummer
          \item Leerzeile
          \item Postleitzahl und Bestimmungsort
          \item Leerzeile
          \item Bestimmungsland
        \end{enumerate}

        Bei Auslandsanschriften ist die Leerzeile zwischen
        der Zeile mit Postfach oder Stra"se und Hausnummer
        und der Zeile mit dem Bestimmungsort entbehrlich,
        wenn das Bestimmungsland unter der entsprechenden
        Zeile angegeben werden mu"s.

        Im Verkehr mit bestimmten L"andern kann auf die
        Angabe des Bestimmungslandes verzichtet werden,
        wenn das Unterscheidungskennzeichen f"ur den
        grenz"uberschreitenden Kraftfahrzeugverkehr
        der Postleitzahl --- durch einen Bindestrich
        getrennt --- vorangestellt wird.

        Nach dem ersten Eintrag im Anschriftenfeld
        darf nur ein \verb|\\| stehen. Direkte
        L"angenangaben (z.B.\ \verb|\\[\medskipamount]|)
        sind nicht zul"assig und verursachen einen Fehler.
        Der Fehler kann umgangen werden, indem eine
        Konstruktion
        \m{Versendungsform}\verb|\\~\\|%
        \m{Empf"angerbezeichnung} usw.\
        verwendet wird.

  \item {\bf Bezugszeichen und Tagangabe}

        Die Eintragungen in dieser Zeile werden automatisch
        an der richtigen Stelle plaziert.

  \item {\bf Betreff und Teilbetreff}

        Betreff und Teilbetreff sind stichwortartige
        Inhaltsangaben. Der Betreff bezieht sich auf den
        ganzen Brief, Teilbetreffe beziehen sich auf
        Briefteile.

% \iffalse
        Der {\em Wortlauf des Betreffs\/} wird ohne
        Schlu"spunkt geschrieben.

        Der {\em Teilbetreff\/} beginnt an der Fluchtlinie
        (linker Rand), schlie"st mit einem Punkt und wird
        unterstrichen. Wir empfehlen diesen Text besser
        durch eine andere Schriftart (z.B.\ fett)
        hervorzuheben. Der Text wird unmittelbar angef"ugt.

  \item {\bf Behandlungsvermerke}

        Behandlungsvermerke (z.B.\ eilt) werden \dots,
        oder im Anschlu"s an die Betreffangabe
        geschrieben; sie k"onnen hervorgehoben werden.
% \fi
  \item {\bf Anlagen- und Verteilvermerke}

        Anlagen- und Verteilvermerke beginnen an der
        Fluchtlinie oder auf Grad 50 (60 oder 75).
        Die vorliegende Version des `dinbriefs'
        unterst"utzt nur Anlagen- und Verteilvermerke
        auf der Fluchtlinie.

        Der Anlagenvermerk geht dem Verteilvermerk
        voraus.

  \item {\bf Postscriptum}

        Die DIN Norm 5008 sieht kein Postscriptum vor.
        Die vorliegende Version des `dinbriefs'
        unterst"utzt trotzdem ein Postscriptum.
        Wir empfehlen das Postscriptum unmittelbar
        nach der Gru"sformel \verb|\closing| oder
        nach Anlagen- und Verteilvermerken zu setzen.

  \item {\bf Seitennumerierung}

        Die Seiten eines Schriftst"ucks sind von der
        2.~Seite an oben fortlaufend zu benummern.
        Die Pagestyles \verb|headings| und
        \verb|contheadings| unterst"utzen diese
        Forderung. Das Verfahren ist jedoch noch nicht
        befriedigend.

  \item {\bf Hinweis auf Folgeseiten}

        Wenn der Text eines Schriftst"ucks eine n"achste
        Seite beansprucht, wird empfohlen
        \begin{itemize}
          \item am Fu"s der bereits beschrifteten Seite,
          \item nach der letzten Textzeile,
          \item mit mindestens einer Leerzeile Abstand,
          \item auf Grad 60 (72 oder 90) beginnend,
        \end{itemize}
        als Hinweis auf die folgende Seite drei Punkte
        zu schreiben.

        Dieses Vorgehen wird zur Zeit nicht unterst"utzt.
        Der Pagestyle \verb|contheadings| schreibt jedoch
        an das Ende der laufenden Seite die Seitenzahl
        der Folgeseite und auf Folgeseiten die
        aktuelle Seite in der Kopf der Seite.

        Die Kombination des Befehls \verb|\bottomtext|,
        zum Einblenden einer weiteren Kommunikationszeile
        am unteren Blattende der ersten Seite sowie
        von gesellschaftsrechtlichen Angaben,
        mit Seitenstilen, die die Fu"szeile unten mit
        der Seitennummer oder Folgeseitennummer
        beschriften, hat unter Umst"anden zur Folge,
        da"s die Seiten- oder Folgeseitennummer
        von diesen Feldern "uberschrieben wird.

  \item {\bf Kommunikationszeile am Blattende und
        gesellschaftsrechtliche Angaben}

        Eine Kommunikationszeile am Blattende kann die folgenden
        Angaben enthalten: Gesch"aftsr"aume, Telefon, Telefax,
        Teletex, Telex, Btx und Kontoverbindungen.

        Bei Kapitalgesellschaften sind die Angaben "uber
        \begin{itemize}
          \item die Rechtsform und den Sitz der Gesellschaft,
          \item das Registergericht des Sitzes der Gesellschaft
                und die Nummer, unter der die Gesellschaft in
                das Handelsregister eingetragen ist,
          \item den Namen des Vorsitzenden des Aufsichtsrates
                (sofern die Gesellschaft nach gesetzlicher
                Vorschrift einen Aufsichtsrat zu bilden hat),
          \item die Namen des Vorsitzenden und aller Mitglieder
                des Vorstandes (bei Gesellschaften mit
                beschr"ankter Haftung die Namen der
                Gesch"afts\-f"uhrer),
        \end{itemize}
        am Fu"s des Vordrucks aufzuf"uhren.\hfil\break
        Die Rechtsform kann auch im Briefkopf als Bestandteil
        der Firma angegeben werden.
\end{enumerate}

\clearpage
% \iffalse
%</documentation>
% \fi
% \iffalse
%<*documentation|dintab>
% \fi
% \iffalse
\end{document}
% \fi
% \iffalse
%</documentation|dintab>
% \fi
%
% \clearpage
%
% \originalTeX
%
% \section{Documentation}
%
%    We store the date, version and name of this file in four control
%    sequences, for future use.
%    \begin{macrocode}
\def\RCSdate{$Date: 1995/01/12 01:12:12 $}
\def\RCSrevision{$Revision: 1.20 $}
%
{%
  \def\stripone $#1${\def\partone{#1}}
  \def\striptwo Date: #1\stop{\gdef\filedate{#1}\gdef\docdate{#1}}
  \expandafter\stripone\RCSdate
  \expandafter\striptwo\partone\stop
}%
%
{%
  \def\stripone $#1${\def\partone{#1}}
  \def\striptwo Revision: #1\stop{\gdef\fileversion{#1}}
  \expandafter\stripone\RCSrevision
  \expandafter\striptwo\partone\stop
}%
%
% ^^A \def\fileversion{0.94.1}
% ^^A \def\filedate{1994/08/15}
\def\filename{dinbrief.dtx}
% ^^A \def\docdate {1994/08/15}
%    \end{macrocode}
%
%
% \subsection{The class/style file `dinbrief'}
%
% This is |DINBRIEF.STY| in text format, as of 1994/12/21,
% by K.~Braune and R.~Gussmann
%    (Rechenzentrum der Universit\"at Karlsruhe).
%
% It is based on |DLETTER.STY| in text format, as of December 16, 1987,
% by D.~Heinrich (TH Karlsruhe).
%
% It is based on |A4LETTER.STY| in text format, as of June 16, 1987,
% and |letter.sty| 17-Jan-86 with modifications
% for DIN-A4 paper + window envelopes, by H.~Partl (Wien)
%
% \changes{0.0.0}{1991/09/09}{(KB) Inserted blank space behind "P.S.:"}
% \changes{0.0.0}{1991/10/02}{(KB) Changed "P.S.:" to "PS\cmd\newline"
%                                  Diminished space before \cmd\ps, \cmd\cc
%                                  and \cmd\encl.
%                                  Inserted code to generate labels using
%                                  a 12pt font and changed references
%                                  to \cmd\scriptsize to \cmd{\size{9}{11pt}}}
% \changes{0.0.0}{1991/10/31}{(KB) Changes to allow \cmd\place not set}
% \changes{0.0.0}{1991/11/15}{(RG) Moved \cmd\newlength from inside
%                                  \cmd\@answerto outside to allow
%                                  multiple letters within a single document.
%                                  Changed command sequences}
% \changes{0.0.0}{1991/11/19}{(KB) Replaced \cmd\rm by code for the
%                                  new fontselection scheme}
% \changes{0.0.0}{1991/11/19}{(KB) Changed first page to use pagestyle
%                                  firstpage}
% \changes{0.0.0}{1992/02/05}{(KB) Changes of R.~Gussmann inserted}
% \changes{0.0.0}{1992/02/27}{(KB) Page offsets corrected}
% \changes{0.0.0}{1994/02/08}{(RG) Changes of K.~D.~Braune inserted}
% \changes{0.92.20}{1994/02/23}{(RG) some more Comments added}
% \changes{0.93.0}{1994/06/07}{(RG) some more Comments added\hfil\break
%                                   styles for labels added}
%
%    \begin{macrocode}
%<*class|style>
%    \end{macrocode}
%
% \subsection{Get system information}
% First we use three conditions to identify whether or not this file
% is running under LaTeX 2.09 or \LaTeXe\ and which font selection
% scheme is in use.
%
% |\ifka@db@ltxtwoe| is true if and only if this style is running in
% an \LaTeXe-environment. |\ifka@db@nfss| is true if we are using an
% NFSS 1 and \linebreak[4]
% |\ifka@db@nfsstwo| is true if we are using the NFSS 2.
%
%    \begin{macrocode}
\newif\ifka@db@ltxtwoe
\ka@db@ltxtwoefalse
\newif\ifka@db@nfss
\ka@db@nfssfalse
\newif\ifka@db@nfsstwo
\ka@db@nfsstwofalse
%    \end{macrocode}
%
% Then we check what is present on the system.
%
%    \begin{macrocode}
\expandafter\ifx\csname documentclass\endcsname\relax\else
    \ka@db@ltxtwoetrue
  \fi
\expandafter\ifx\csname size\endcsname\relax\else
    \ka@db@nfsstrue
  \fi
\expandafter\ifx\csname fontsize\endcsname\relax\else
    \ka@db@nfsstwotrue
  \fi
%    \end{macrocode}
%
% \subsection{Print informations about this style}
%
% \subsubsection{Print the banner}
%
%    \begin{macrocode}
\typeout{}
\typeout{Document Class/Style 'dinbrief' - %
         Preliminary Version \fileversion}
\typeout{University of Karlsruhe - \filedate}
\typeout{}
%    \end{macrocode}
%
% \subsubsection{Print system information}
%    \begin{macrocode}
\ifka@db@ltxtwoe
    \typeout{*** dinbrief: Running in LaTeX 2e mode!}
  \else
    \typeout{*** dinbrief: Running in LaTeX 2.09 mode!}
  \fi
\ifka@db@nfss
    \typeout{*** dinbrief: NFSS!}
  \else
    \ifka@db@nfsstwo
      \typeout{*** dinbrief: NFSS 2!}
    \else
      \typeout{*** dinbrief: original LaTeX 2.09 font %
               selection mechanism found!!!}
    \fi
  \fi
%    \end{macrocode}
%
% \subsection{Initial code}
%
%    In this part we define a few comands that are used later on.
%
% \subsubsection{Choosing the type size}
%
% \begin{macro}{\@ptsize}
% \begin{macro}{\ds@12pt}
% \begin{macro}{\ds@11pt}
% \begin{macro}{\ds@10pt}
% \begin{macro}{\ds@norm}
%    The control sequence |\@ptsize| is used to store the second digit
%    of the pointsize we are typesetting in. So, normally, it's value
%    is one of 0, 1 or 2.
%
%    To be compatible with the old `dinbrief', pointsize 3 is used to
% \iffalse
%    switch to special size having $\frac{1}{6}$ in as |\baselineskip|.
% \fi
%    switch to a special size setting exactly 6 lines per inch.
%    (\dots\ it's used to feature some other size following the rules
%    of old stupid typewriters).
%
%    The type size options are handled by defining |\@ptsize| to contain
%    the last digit of the size in question and branching on |\ifcase|
%    statements. This is done for historical reasons to stay compatible
%    with other packages that use the |\@ptsize| variable to select
%    special actions.
%
%    To follow the programming conventions of \LaTeXe, we split the
%    definition of the macros into two parts. One for the old \LaTeX\
%    and one for \LaTeXe.
%
%    \begin{macrocode}
\ifka@db@ltxtwoe
  \newcommand\@ptsize{}
  \DeclareOption{10pt}{\renewcommand\@ptsize{0}}
  \DeclareOption{11pt}{\renewcommand\@ptsize{1}}
  \DeclareOption{12pt}{\renewcommand\@ptsize{2}}
  \DeclareOption{norm}{\renewcommand\@ptsize{3}}
\else
  \def\@ptsize{0}
  \@namedef{ds@10pt}{\def\@ptsize{0}}
  \@namedef{ds@11pt}{\def\@ptsize{1}}
  \@namedef{ds@12pt}{\def\@ptsize{2}}
  \@namedef{ds@norm}{\def\@ptsize{3}}
\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsection{Defining the jobname}
%
% \begin{macro}{\jobname@aux}
%    This control sequence is used to store the name of the aux-file.
%    Therefore character |_| temporally is given catcode 12.
%
%    \begin{macrocode}
{\catcode`\_=12 \gdef\jobname@aux{\jobname.aux}} % .aux or _aux or ...
%    \end{macrocode}
% \end{macro}
%
% \subsection{Stuff from original classes}
%
% \begin{macro}{\if@restonecol}
%    If the document has to be printed in two columns, we sometimes
%    have to temporarily switch to one column. This switch is used to
%    remember to switch back.
%    \begin{macrocode}
\newif\if@restonecol
%    \end{macrocode}
% \end{macro}
%
% \subsection{Setting paper sizes}
%
%    The variables |\paperwidth| and |\paperheight| should reflect the
%    physical paper size after trimming. For desk printer output this
%    is usually the real paper size since there is no post-processing.
%    \begin{macrocode}
\ifka@db@ltxtwoe
  \DeclareOption{a4paper}
     {\setlength\paperheight {297mm}%
      \setlength\paperwidth  {210mm}}
  \DeclareOption{a5paper}
     {\setlength\paperheight {210mm}%
      \setlength\paperwidth  {148mm}}
  \DeclareOption{b5paper}
     {\setlength\paperheight {250mm}%
      \setlength\paperwidth  {176mm}}
  \DeclareOption{letterpaper}
     {\setlength\paperheight {11in}%
      \setlength\paperwidth  {8.5in}}
  \DeclareOption{legalpaper}
     {\setlength\paperheight {14in}%
      \setlength\paperwidth  {8.5in}}
  \DeclareOption{executivepaper}
     {\setlength\paperheight {10.5in}%
      \setlength\paperwidth  {7.25in}}
\fi
%    \end{macrocode}
%
%  \subsection{Two-side or one-side printing}
%
%    Two-sided printing is not supported.
%    \begin{macrocode}
\ifka@db@ltxtwoe
  \DeclareOption{twoside}{\@latexerr{No 'twoside' layout for letters}%
                                     \@eha}
\fi
\@twosidefalse
%    \end{macrocode}
%
%  \subsection{Draft option}
%
%    If the user requests \Lopt{draft} we show any overfull boxes.
%    We could probably add some more interesting stuff to this option.
%    \begin{macrocode}
\def\ds@draft{\overfullrule 5pt}
\def\ds@final{\overfullrule 0pt}
%    \end{macrocode}
%
%  \subsection{Twocolumn printing}
%
%    Two-column and one-column printing is again realized via a switch.
%
%    This makes no sense in letters following the rules of DIN. But
%    maybe it is sometimes usefull.
%
%    Some labels use twocolumn output.
%    \begin{macrocode}
\ifka@db@ltxtwoe
  \DeclareOption{onecolumn}{\@twocolumnfalse}
  \DeclareOption{twocolumn}{\@twocolumntrue}
\fi
%    \end{macrocode}
%
%  \subsection{Defining internal font selection commands}
%
%  To be compatible to all font selection schemes we define our own
%  font selection commands |\ka@db@fontshape| (1), |\ka@db@fontseries| (1),
%  |ka@db@fontsize| (2), |\ka@db@selectfont| (0).
%
% Note: In the definition of the original \LaTeX\ 2.09 font selection system
%       the command |\rm| is used. This causes no error because |\rm| is
%       well defined in this version of \LaTeX.
%
% \iffalse
% Note: The code for the font selection with the original mechanism
%       had been written by K.~Braune.
% \fi
%
%    \begin{macrocode}
\ifka@db@nfss
    \let\ka@db@selectfont\selectfont
    \let\ka@db@fontseries\series
    \let\ka@db@fontshape\shape
    \let\ka@db@fontsize\size
  \else
    \ifka@db@nfsstwo
        \let\ka@db@selectfont\selectfont
        \let\ka@db@fontseries\fontseries
        \let\ka@db@fontshape\fontshape
        \let\ka@db@fontsize\fontsize
      \else
        \def\ka@db@selectfont{\relax}
        \def\ka@db@fontseries#1{\relax}
        \def\ka@db@fontshape#1{\ifx#1n\rm\else\relax\fi}
        \def\ka@db@fontsize#1#2{\expandafter
            \ifnum#1=12
                \@setsize\normalsize{15pt}\xiipt\@xiipt
                \abovedisplayskip 12pt plus3pt minus7pt
                \belowdisplayskip \abovedisplayskip
                \abovedisplayshortskip \z@ plus3pt
                \belowdisplayshortskip 6.5pt plus3.5pt minus3pt
              \else
                \ifnum#1=8
                    \@setsize\scriptsize{8pt}\viipt\@viipt
                  \else
                    \@setsize\scriptsize{9.5pt}\viiipt\@viiipt
                  \fi
              \fi}
      \fi
  \fi
%    \end{macrocode}
%
% \subsection{Executing options}
%
%    Here we execute the default options to initialize certain
%    variables.
%    \begin{macrocode}
\ifka@db@ltxtwoe
  \ExecuteOptions{a4paper,10pt,onecolumn,final}
\fi
%    \end{macrocode}
%
%    The |\ProcessOptions| command causes the execution of the code
%    for every option \Lopt{FOO}
%    which is declared and for which the user typed
%    the \Lopt{FOO} option in his
%    |\documentclass| command.  For every option \Lopt{BAR} he typed,
%    which is not declared, the option is assumed to be a global option.
%    All options will be passed as document options to any
%    |\usepackage| command in the document preamble.
%
%    In the old \LaTeX\ the user starts his file with the command
%    \linebreak[4]|\documentstyle [OPTION1, ... ,OPTIONk]{STYLE}|
%    which saves the |OPTION|'s and |\input|'s the file |STYLE.STY|.
%    When the |STYLE.STY| file issues the command |\@options|, the
%    following happens for each i:
%
%    If the control sequence |\ds@OPTIONi| is defined then
%    execute this option |\ds@OPTIONi|. In the other case
%    save OPTIONi on a list of unprocessed options.
%
%    After |STYLE.STY| has been executed, the file |OPTIONi.STY| is read for
%    each |OPTIONi| on the list of unprocessed options.
%
%    \begin{macrocode}
\ifka@db@ltxtwoe
    \ProcessOptions
  \else
    \@options
  \fi
%    \end{macrocode}
%
%  \subsection{Loading Packages}
%
%  The `dinbrief' class/style file does not load additional packages.
%  The user should load `german.sty'.
%
% \subsection{Error messages in this class/style}
%
% \subsubsection{General error message}
%
%  \begin{macro}{\ka@db@error}
%    \begin{macrocode}
\def\ka@db@error#1{%
   \@latexerr{%
      Document style/class `dinbrief' error^^J%
      #1%
   }{%
      No help is available for this error message.^^J%
      Please check your input file!
   }%
}
%    \end{macrocode}
%  \end{macro}
%
%  \subsubsection{Warning within \LaTeXe\ for forbidden commands}
%
%  Therefore we define a warning message in case forbidden
%  commands are used.
%  \begin{macro}{\ka@db@warning}
%    \begin{macrocode}
\ifka@db@ltxtwoe
  \def\ka@db@warning#1{%
    \@@warning{The control sequence \string#1\space should %
               not be used in LaTeX 2e}%
  }
\fi
%    \end{macrocode}
%  \end{macro}
%
%  \subsection{Font changing}
%
%  \subsubsection{Defining old font changing commands for \LaTeXe}
%
%  \changes{0.92.20}{1994/02/20}{The font changing has to
%                                be redefined in \LaTeXe.
%                                Code copied from letter class.}
%  \changes{0.94.0}{1994/08/15}{\cmd\@rewnewfontswitch renamed to
%                               \cmd\DeclareOldFontCommand}
%  \changes{0.95.0}{1994/11/10}{Deleted wrong explanation.}
%
%  Defining the font change commands for \LaTeXe.
%
%  The following commands are only available in \LaTeXe. In older
%  versions of \LaTeX\ the commands are defined in |lfonts.???|
%  (I think so).
%
%    \begin{macrocode}
\ifka@db@ltxtwoe
%    \end{macrocode}
%  Here we supply the declarative font changing commands that were common
%  in \LaTeX\ version 2.09 and earlier. These commands work in text mode
%  \textit{and} in math mode. They are provided for compatibility, but one
%  should start using the |\text...| and |\math...| commands instead.
%  These commands are redefined using |\@renewfontswitch|, a command
%  with three arguments: the user command to be defined, \LaTeX's command
%  to be executed in text mode, and \LaTeX's command to be executed in math
%  mode.
%
%  \begin{macro}{\rm}
%  \begin{macro}{\sf}
%  \begin{macro}{\tt}
%  The commands to change the family:
%    \begin{macrocode}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\bf}
%  The command to change to the bold series. One should use |\mdseries| to
%  explicitly switch back to medium series.
%    \begin{macrocode}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\it}
%  \begin{macro}{\sl}
%  \begin{macro}{\sc}
%  And the commands to change the shape of the font. The slanted and
%  small caps shapes are not available by default as math alphabets, so
%  these changes do nothing in math mode. One should use |\upshape|
%  to explicitly change back to the upright shape.
%
%    \begin{macrocode}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\cal}
%  \begin{macro}{\mit}
%  The commands |\cal| and |\mit| should only be used in math mode, outside
%  math mode they have no effect. Currently, the New Font Selection Scheme
%  defines these commands to generate warning messages. Therefore, we have
%  to define them manually.
%
%    \begin{macrocode}
\renewcommand{\cal}{\protect\pcal}
\newcommand{\pcal}{\@fontswitch{\relax}{\mathcal}}
\renewcommand{\mit}{\protect\pmit}
\newcommand{\pmit}{\@fontswitch{\relax}{\mathnormal}}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
%  The end of the conditional code for the font changing commands for
%  \LaTeXe.
%    \begin{macrocode}
\fi
%    \end{macrocode}
%
% \subsection{A special distance}
% \begin{macro}{\GZA}
%  Baselinedistance 1/6 in = 4,23 mm (Grundzeilenabstand DIN 2107, 2142)
%    \begin{macrocode}
\newdimen\GZA
\GZA=1in \divide\GZA by 6
%    \end{macrocode}
% \end{macro}
%
% \subsection{Fontsizes und other parameters}
%
% \begin{macro}{\@normalsize}
% \begin{macro}{\small}
% \begin{macro}{\footnotesize}
% \begin{macro}{\scriptsize}
% \begin{macro}{\tiny}
% \begin{macro}{\large}
% \begin{macro}{\Large}
% \begin{macro}{\LARGE}
% \begin{macro}{\huge}
% \begin{macro}{\Huge}
%
%    \begin{macrocode}
\ifcase \@ptsize\relax
 \def\@normalsize{\@setsize\normalsize{12pt}\xpt\@xpt
  \abovedisplayskip 10\p@ plus2\p@ minus5\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus3\p@
  \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
  \let\@listi\@listI
  }%
 \def\small{\@setsize\small{11pt}\ixpt\@ixpt
  \abovedisplayskip 8.5\p@ plus 3\p@ minus 4\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus2\p@
  \belowdisplayshortskip 4\p@ plus2\p@ minus 2\p@
  \def\@listi{\leftmargin\leftmargini
              \topsep 4\p@ \@plus2\p@ \@minus2\p@
              \parsep 2\p@ \@plus\p@ \@minus\p@
               \itemsep \parsep}%
  }%
 \def\footnotesize{\@setsize\footnotesize{9.5pt}\viiipt\@viiipt
  \abovedisplayskip 6\p@ plus 2\p@ minus 4\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus 1\p@
  \belowdisplayshortskip 3\p@ plus 1\p@ minus 2\p@
  \def\@listi{\leftmargin\leftmargini
              \topsep 3\p@ \@plus\p@ \@minus\p@
              \parsep 2\p@ \@plus\p@ \@minus\p@
              \itemsep \parsep}%
  }%
 \def\scriptsize{\@setsize\scriptsize{8pt}\viipt\@viipt}
 \def\tiny{\@setsize\tiny{6pt}\vpt\@vpt}
 \def\large{\@setsize\large{14pt}\xiipt\@xiipt}
 \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
 \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
 \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
 \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
%    \end{macrocode}
%    \begin{macrocode}
\or % 11 pt option
%    \end{macrocode}
%    \begin{macrocode}
 \def\@normalsize{\@setsize\normalsize{13.6pt}\xipt\@xipt
  \abovedisplayskip 11\p@ plus3\p@ minus6\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus3\p@
  \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
  \let\@listi\@listI
  }%
 \def\small{\@setsize\small{12pt}\xpt\@xpt
  \abovedisplayskip 10\p@ plus2\p@ minus5\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus3\p@
  \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
  \def\@listi{\leftmargin\leftmargini
              \topsep 6\p@ \@plus2\p@ \@minus2\p@
              \parsep 3\p@ \@plus2\p@ \@minus\p@
              \itemsep \parsep}%
  }%
 \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
  \abovedisplayskip 8\p@ plus 2\p@ minus 4\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus 1\p@
  \belowdisplayshortskip 4\p@ plus 2\p@ minus 2\p@
  \def\@listi{\leftmargin\leftmargini
              \topsep 4\p@ \@plus2\p@ \@minus2\p@
              \parsep 2\p@ \@plus\p@ \@minus\p@
              \itemsep \parsep}%
  }%
 \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
 \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
 \def\large{\@setsize\large{14pt}\xiipt\@xiipt}
 \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
 \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
 \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
 \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
%    \end{macrocode}
%    \begin{macrocode}
\or % 12pt option
%    \end{macrocode}
%    \begin{macrocode}
 \def\@normalsize{\@setsize\normalsize{15pt}\xiipt\@xiipt
  \abovedisplayskip 12\p@ plus3\p@ minus7\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus3\p@
  \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
  \let\listi\listI
  }%
 \def\small{\@setsize\small{13.6pt}\xipt\@xipt
  \abovedisplayskip 11\p@ plus3\p@ minus6\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus3\p@
  \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
  \def\@listi{\leftmargin\leftmargini
              \topsep 9\p@ \@plus3\p@ \@minus5\p@
              \parsep 4.5\p@ \@plus2\p@ \@minus\p@
              \itemsep \parsep}%
  }%
 \def\footnotesize{\@setsize\footnotesize{12pt}\xpt\@xpt
  \abovedisplayskip 10\p@ plus2\p@ minus5\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus3\p@
  \belowdisplayshortskip 6\p@ plus3\p@ minus3\p@
  \def\@listi{\leftmargin\leftmargini
              \topsep 6\p@ \@plus2\p@ \@minus2\p@
              \parsep 3\p@ \@plus2\p@ \@minus\p@
              \itemsep \parsep}%
  }%
 \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
 \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
 \def\large{\@setsize\large{18pt}\xivpt\@xivpt}
 \def\Large{\@setsize\Large{22pt}\xviipt\@xviipt}
 \def\LARGE{\@setsize\LARGE{25pt}\xxpt\@xxpt}
 \def\huge{\@setsize\huge{30pt}\xxvpt\@xxvpt}
 \let\Huge=\huge
%    \end{macrocode}
%    \begin{macrocode}
\or  % Norm-Option (DIN 2107, 2142)
%    \end{macrocode}
%    \begin{macrocode}
 \def\@normalsize{\@setsize\normalsize{\GZA}\xipt\@xipt
  \abovedisplayskip 11\p@ plus3\p@ minus6\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus3\p@
  \belowdisplayshortskip 6.5\p@ plus3.5\p@ minus3\p@
  \let\@listi\@listI
  }% Setting of \@listi added 22 Dec 87
 \def\small{\@setsize\small{11pt}\xpt\@xpt
  \abovedisplayskip 10\p@ plus2\p@ minus5\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip  \z@ plus3\p@
  \belowdisplayshortskip  6\p@ plus3\p@ minus3\p@
  \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87
              \topsep 6\p@ plus2\p@ minus2\p@
              \parsep 3\p@ plus2\p@ minus\p@
              \itemsep \parsep}%
  }%
 \def\footnotesize{\@setsize\footnotesize{11pt}\ixpt\@ixpt
  \abovedisplayskip 8\p@ plus2\p@ minus4\p@
  \belowdisplayskip \abovedisplayskip
  \abovedisplayshortskip \z@ plus\p@
  \belowdisplayshortskip 4\p@ plus2\p@ minus2\p@
  \def\@listi{\leftmargin\leftmargini %% Def of \@listi added 22 Dec 87
              \topsep 4\p@ plus2\p@ minus2\p@
              \parsep 2\p@ plus\p@ minus\p@
              \itemsep \parsep}%
  }%
 \def\scriptsize{\@setsize\scriptsize{9.5pt}\viiipt\@viiipt}
 \def\tiny{\@setsize\tiny{7pt}\vipt\@vipt}
 \def\large{\@setsize\large{14pt}\xiipt\@xiipt}
 \def\Large{\@setsize\Large{18pt}\xivpt\@xivpt}
 \def\LARGE{\@setsize\LARGE{22pt}\xviipt\@xviipt}
 \def\huge{\@setsize\huge{25pt}\xxpt\@xxpt}
 \def\Huge{\@setsize\Huge{30pt}\xxvpt\@xxvpt}
\fi
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%  \begin{macro}{\normalsize}
%  We are doing here something different from the class files of
%  \LaTeXe. This may be necessary for backward compatibility.
%
%  If we are in \LaTeXe, then we have to define the
%  controlsequence |\normalsize|.
%
%    \begin{macrocode}
\ifka@db@ltxtwoe
\let\normalsize\@normalsize
\fi
%    \end{macrocode}
%  \end{macro}
%
% We initially choose the normalsize font.
% This code has to be executed following the definition of |\baselinestretch|,
% if we are not running NFSS2. (This may also be true also for NFSS1.)
% \changes{0.92.13}{1994/01/04}{Commented out and moved to the end of the file}
% \changes{0.92.14}{1994/01/04}{Included as conditional code}
%    \begin{macrocode}
\ifka@db@nfss
    \normalsize
  \else
    \ifka@db@nfsstwo
      \normalsize
    \fi
  \fi
%    \end{macrocode}
%
% \subsection{Document layout}
% \label{sec:maincode}
%
%  In this section we are finally dealing with the nasty typographical
%  details.
%
%    \begin{macrocode}
\addtolength\voffset{0.8truemm}
\addtolength\hoffset{-1.4truemm}
%    \end{macrocode}
%
%    \begin{macrocode}
\oddsidemargin 0in
\evensidemargin 0in
\marginparwidth .08in
\marginparsep .01in
\marginparpush 5pt
\topmargin -15pt
%    \end{macrocode}
%
% \begin{macro}{\ltf@headheight}
% \begin{macro}{\lts@headheight}
% \begin{macro}{\ltf@headsep}
% \begin{macro}{\lts@headsep}
% \begin{macro}{\ltf@textheight}
% \begin{macro}{\lts@textheight}
% These dimens are used to store different values for the first page
% and the following pages. All dimens starting with |ltf@XXX| hold
% values for the first page and all dimens starting with |lts@XXX|
% hold values for the second and follwing pages. We have to do
% here such a funny coding because \LaTeX's |\thispagestyle|-mechanism
% is not flexible enough. (This code may not complete yet!)
%
% We use this to move the start of the first page of a letter
% 12~mm up.
%
%    \begin{macrocode}
\newdimen\ltf@headheight
\newdimen\lts@headheight
\newdimen\ltf@headsep
\newdimen\lts@headsep
\newdimen\ltf@textheight
\newdimen\lts@textheight
\ltf@headheight 4.2truemm %
\lts@headheight 0truemm %
\ltf@headsep 8.8truemm %
\lts@headsep 0truemm %
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%  \begin{macro}{\footheight}
%    \LaTeXe\ has no dimen register |\footheight|, because there is no such
%    register in other \LaTeX-versions.
%    \begin{macrocode}
\ifka@db@ltxtwoe
    \relax
  \else
    \footheight 4.2truemm
  \fi
%    \end{macrocode}
%  \end{macro}
%
%    \begin{macrocode}
\footskip 8.8truemm
\textheight 260truemm
%    \end{macrocode}
%
% \iffalse
% RG 29.11.93 printer can't output the last line
% \fi
% \changes{0.0.0}{1993/11/29}{(RG) printer can't output the last line}
%
%    \begin{macrocode}
\textheight 254truemm
\textwidth 165truemm
\columnsep 10pt
\columnseprule 0pt
%    \end{macrocode}
%
%    \begin{macrocode}
\raggedbottom
%    \end{macrocode}
%
%  \begin{macro}{\footnotesep}
%    |\footnotesep| is the height of the strut placed at the beginning
%    of every footnote. It equals the  height of a normal
%    |\footnotesize| strut in this
%    class; thus no extra space occurs between footnotes.
%
%    The class/style `dinbrief' uses only one value for
%    |\footnotesep| in all pt-sizes.
%
%    \begin{macrocode}
\footnotesep 4.2truemm
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\footins}
%    |\skip\footins| is the space between the last line of the main
%    text and the top of the first footnote.
%
%    The class/style `dinbrief' uses only one value for
%    |\footins| in all pt-sizes.
%
%    \begin{macrocode}
\skip\footins 10pt plus 2pt minus 4pt
%    \end{macrocode}
%  \end{macro}
%
%    \begin{macrocode}
\floatsep 12pt plus 2pt minus 2pt
\textfloatsep 20pt plus 2pt minus 4pt
\intextsep 12pt plus 2pt minus 2pt
\dblfloatsep 12pt plus 2pt minus 2pt
\dbltextfloatsep 20pt plus 2pt minus 4pt
\ifka@db@ltxtwoe
    \relax
  \else
    \@maxsep 20pt
    \@dblmaxsep 20pt
  \fi
\@fptop 0pt plus 1fil
\@fpsep 8pt plus 2fil
\@fpbot 0pt plus 1fil
\@dblfptop 0pt plus 1fil
\@dblfpsep 8pt plus 2fil
\@dblfpbot 0pt plus 1fil
%    \end{macrocode}
%
% \begin{macro}{\@windowrules}
% \begin{macro}{\windowrules}
% \begin{macro}{\nowindowrules}
%    \begin{macrocode}
\def\@windowrules#1{\gdef\@@windowrules{#1}}
\def\windowrules{\@windowrules{yes}}
\def\nowindowrules{\@windowrules{}}
\windowrules
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\@windowtics}
% \begin{macro}{\windowtics}
% \begin{macro}{\nowindowtics}
%    \begin{macrocode}
\def\@windowtics#1{\gdef\@@windowtics{#1}}
\def\windowtics{\@windowtics{yes}}
\def\nowindowtics{\@windowtics{}}
\windowtics
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\backaddress}
% \begin{macro}{\@backaddress}
%    \begin{macrocode}
\def\backaddress#1{\gdef\@backaddress{#1}}
\backaddress{}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%  \begin{macro}{\opening}
%    \begin{macrocode}
\def\opening#1{\thispagestyle{first@page}
%    \end{macrocode}
% Actually enlarge the first page by the negative height of the footer:
%    \begin{macrocode}
  \ifka@db@ltxtwoe
     \enlargethispage{-\ht\@@bottomtext}
  \fi
%    \end{macrocode}
%    \begin{macrocode}
 \ifx\@empty\@fromaddress
    \vbox to 0pt{\vss}\nointerlineskip
  \else
     \vbox to 0pt{\vskip -19.4truemm\raggedright\@fromaddress\vss}%
  \fi
 \vskip 13.1truemm
%
 \ifx\@empty\@@windowtics
    \vbox to 0pt{\rule{0pt}{62.5truemm}%
     \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
     \vss}\nointerlineskip
    \vbox to 0pt{\rule{0pt}{106.0truemm}%
     \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
     \vss}\nointerlineskip
    \vbox to 0pt{\rule{0pt}{167.5truemm}%
     \hbox to 0pt{\vbox{\hrule width 0pt}\hss}%
     \vss}\nointerlineskip
  \else
    \vbox to 0pt{%
     \rule{0pt}{62.5truemm}%
     \hbox to 0pt{\hspace*{-24truemm}\vbox{\hrule width 7truemm}\hss}%
     \vss}\nointerlineskip
    \vbox to 0pt{%
     \rule{0pt}{106.0truemm}%
     \hbox to 0pt{\hspace*{-18truemm}\vbox{\hrule width 6truemm}\hss}%
     \vss}\nointerlineskip
    \vbox to 0pt{%
     \rule{0pt}{167.5truemm}%
     \hbox to 0pt{\hspace*{-24truemm}\vbox{\hrule width 7truemm}\hss}%
     \vss}\nointerlineskip
  \fi
%    \end{macrocode}
% \changes{0.0.0}{1994/02/08}{(KDB) Changed to check the height of
%                             the footer (\cmd\@@bottomtext\ now dimen,
%                             no longer command)}
%    \begin{macrocode}
 \ifdim\ht\@@bottomtext>0pt
%    \end{macrocode}
% \changes{0.0.0}{1994/02/08}{(KDB) \cmd\@@bottomtext\  should be set
%                             within a \env{\vbox to 0pt}{\cmd\vss ...}}
%    \begin{macrocode}
    \vbox to 0pt{%
      \rule{0pt}{243.5truemm}%
%    \end{macrocode}
% \changes{0.0.0}{1994/02/08}{(KDB) \cmd\hbox{ ... } moved to box \cmd\@@bottomtext}
% \changes{0.0.0}{1994/11/17}{(RG) \cmd\unhbox\ changed to \cmd\unhcopy,
%                             because we can have more than one letter
%                             in one document. So the bottomline is
%                             inserted into every first page of letters.}
%    \begin{macrocode}
      \unhcopy\@@bottomtext
      \vss}\nointerlineskip%
  \fi
%    \end{macrocode}
%    \begin{macrocode}
 \vbox to 0pt{\vss%
  \ifx\@empty\@@windowrules
     \hbox to 0pt{\hss}%
   \else
     \hbox to 0pt{\hspace*{-4truemm}\vbox{\hrule width 85truemm}\hss}%
   \fi
  \vss}\nointerlineskip
%
 \ifx\@empty\@backaddress
    \vbox to 7.5truemm{
     \vfill
     }\nointerlineskip
  \else
    \vbox to 7.5truemm{
     \vskip 2.5truemm
     \vss
     \hbox to 0pt{\hspace*{-4truemm}\vbox{%
      \hbox to 85truemm{\hfill
                        {\ka@db@fontsize{8}{9pt}
                         \ka@db@selectfont \@backaddress}\hfill}%
      \hrule width 85truemm}\hss}%
     \vss}\nointerlineskip
  \fi
%
 \vbox to 40truemm{%
  \vss
  \hbox to 0pt{\hskip0pt minus 4truemm%
   \vbox{%
         \if@letterform
             \relax
           \else
             \raggedright \toname \\ \toaddress%
             \if@toadrcenter\relax
              \else\vskip 2.5truemm minus 2.5truemm
              \fi
           \fi
        }%
   \hss}
  \if@toadrcenter
    \vss
  \fi
  }\nointerlineskip
 \vskip 2.5truemm
%
 \vbox to 0pt{\vss%
  \ifx\@empty\@@windowrules
     \hbox to 0pt{\hss}%
   \else
     \hbox to 0pt{\hspace*{-4truemm}\vbox{\hrule width 85truemm}\hss}%
   \fi
  \vss}\nointerlineskip
%
 \vbox{\vskip 6truemm
  \vbox{%
   \if@refline
      \@answerto
    \else
      \if@letterform\relax\else
        \ifx\@empty\@place
           \raggedleft \@date
         \else
           \raggedleft \@place,\space\@date
         \fi
       \fi
    \fi}}\nointerlineskip
 \par
 \bigskip
 \ifx\@empty\@concern \else
   \if@letterform\relax\else
      \@concern \par
      \bigskip
    \fi
  \fi
 \ifx\@empty\@footer \else
  \fi
 \vspace{0pt plus 10truemm}
 \if@letterform\relax\else
   #1\par
  \fi
  \nobreak}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\closing}
%    \begin{macrocode}
\long\def\closing#1{\par\nobreak\vspace{\parskip}
 \stopbreaks
 {\raggedright
  \ignorespaces #1\\[6\parskip]
  \ifx\@empty\@fromsig
  \else \@fromsig \fi\strut}
  \par\medskip}
%    \end{macrocode}
%  \end{macro}
%
% \subsection{Initialization}
%
% \subsubsection{Words}
%
% \begin{macro}{\ccname}
% \begin{macro}{\enclname}
% \begin{macro}{\psname}
% This document style/class is prepared for documents in German.
% To prepare a version for another language, various German words must
% be replaced.
%
% All German words that require replacement are
% defined below in command names. (Not all!)
%
%    \begin{macrocode}
\def\ccname{Verteiler}
\def\enclname{Anlage(n)}
\def\psname{PS}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\headtoname}
% \begin{macro}{\pagename}
% These two words are used in the pagestyles |headings| and |contheadings|.
%    \begin{macrocode}
\def\headtoname{An}
\def\pagename{Seite}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%
% \subsection{More letter macros}
%  \begin{macro}{\cc}
%  \begin{macro}{\encl}
%  \begin{macro}{\ps}
%    \begin{macrocode}
\def\cc#1{\par\noindent{\ccname \\
          \ignorespaces #1\strut}\par}
\def\encl#1{\par\noindent{\enclname \\
          \ignorespaces #1\strut}\par}
\def\ps#1{\par\noindent{\psname \\
          \ignorespaces #1\strut}\par}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \begin{macro}{\stopletter}
%    |\stopletter| ist a hook to execute own commands at the end
%    of a given letter.
%    \begin{macrocode}
\def\stopletter{}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Styles for the labels}
% \changes{0.0.0}{1993/02/06}{(RG) Labels got some styles.}
%
% \begin{macro}{\labelstyle}
%   |\labelstyle| is a command to define the layout of the labels.
%   Normally, labels are printed on special paper, but some printers
%   are able to print on envelopes. Therefore we define some styles
%   for printing labels on envelops:
%
%   \medskip
%   \begin{tabular}{clcl}
%     \hline
%       \multicolumn{2}{c}{Briefh\"ullenformat} &
%         \multicolumn{2}{c}{Gebr\"auchliches}\\
%       \multicolumn{2}{c}{} &
%         \multicolumn{2}{c}{Einlagenformat}\\
%       \multicolumn{1}{c}{Kurz-} &
%         \multicolumn{1}{c}{Au\ss enma\ss e} &
%         \multicolumn{1}{c}{Kurz-} &
%         \multicolumn{1}{c}{Ma\ss e}\\
%       \multicolumn{1}{c}{zeichen}&
%         \multicolumn{1}{c}{mm $\pm$ 1{,}5}&
%         \multicolumn{1}{c}{zeichen}&
%         \multicolumn{1}{c}{mm}\\
%     \hline
%       C6    & 114 $\times$ 162 & A6   & 105 $\times$ 148 \\
%       DL    & 110 $\times$ 220 & ---  & 105 $\times$ 210 \\
%       C6/C5 & 114 $\times$ 229 & ---  & 105 $\times$ 210 \\
%     \hline
%   \end{tabular}
%
%   \medskip
%   Das Einlagenformat 105 mm $\times$ 210 mm ergibt sich
%   durch Faltung nach DIN~676.
%
% \begin{macro}{\@labelstyle}
%    Labelstyle holds the current value.
%    \begin{macrocode}
\def\labelstyle#1{\def\@labelstyle{#1}}
\labelstyle{plain}
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\label@plain}
%    \begin{macrocode}
\def\label@plain#1#2{\setbox0\vbox{\parbox[b]{3.6in}{
 \strut\ignorespaces #2}}
 \vbox to 50.8truemm{\vss \box0 \vss}
 \ifnum\labelcount=4 \labelcount=0
   \else \advance\labelcount by 1\nointerlineskip
   \fi}
%    \end{macrocode}
% \end{macro}
%
%  \begin{macro}{\label@C6}
%  \begin{macro}{\label@DL}
%  \begin{macro}{\label@C6/C5}
%  \begin{macro}{\label@deskjet}
%    \begin{macrocode}
\def\label@deskjet#1#2{\setbox0\vbox{\parbox[b]{3.6in}{
    \vbox to 0pt{\vss%
      \ifx\@empty\@@windowrules
        \hbox to 0pt{\hss}%
      \else
        \hbox to 0pt{\hspace*{-4truemm}%
                     \vbox{\hrule width 85truemm}\hss}%
      \fi
      \vss}\nointerlineskip
%
    \vbox to 7.5truemm{
      \vskip 2.5truemm
      \vss
      \hbox to 0pt{\hspace*{-4truemm}\vbox{%
        \hbox to 85truemm{\hfill{\ka@db@fontsize{8}{9pt}
                                 \ka@db@selectfont #1}\hfill}
        \hrule width 85truemm}\hss}%
        \vss}\nointerlineskip
%
    \vbox to 40truemm{%
      \vss
      \hbox to 0pt{\hskip0pt minus 4truemm%
        \vbox{\raggedright #2%
          \if@toadrcenter
           \relax\else\vskip 2.5truemm minus 2.5truemm
           \fi}%
        \hss}
      \if@toadrcenter
        \vss
      \fi
    }\nointerlineskip
    \vskip 2.5truemm
%
    \vbox to 0pt{\vss%
      \ifx\@empty\@@windowrules
        \hbox to 0pt{\hss}%
      \else
        \hbox to 0pt{\hspace*{-4truemm}%
                     \vbox{\hrule width 85truemm}\hss}%
      \fi
      \vss}\nointerlineskip
    }}
  \vbox to 0pt{\vss}
  \vskip 18.0truemm
  \vbox to 50.8truemm{\vss \box0 \vss}
  \ifnum\labelcount=4 \labelcount=0
    \else \advance\labelcount by 1\nointerlineskip
    \fi
  \vfill
  \newpage
}
\expandafter\let\csname label@C6\endcsname    =\label@deskjet
\expandafter\let\csname label@DL\endcsname    =\label@deskjet
\expandafter\let\csname label@C6/C5\endcsname =\label@deskjet
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
%  \begin{macro}{\mlabel}
%    |\mlabel| typesets a single label.
%    \begin{macrocode}
\def\mlabel#1#2{\@nameuse{label@\@labelstyle}{#1}{#2}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\lstyle@plain}
%    \begin{macrocode}
\def\lstyle@plain{
  \topmargin -17.6truemm
  \headsep 0pt
  \oddsidemargin -12.3truemm
  \evensidemargin -12.3truemm
  \textheight 25.4truecm
  \advance\textheight by .0001truemm
  \@colht\textheight \@colroom\textheight \vsize\textheight
  \textwidth 193.3truemm
  \columnsep 25pt
  \ka@db@fontsize{12}{14.4pt}\ka@db@selectfont
  \boxmaxdepth=0pt
  \twocolumn\relax
}
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\lstyle@deskjet}
%    \begin{macrocode}
\def\lstyle@deskjet{
  \textheight 25.4truecm
  \advance\textheight by .0001truemm
%  \@colht\textheight \@colroom\textheight \vsize\textheight
  \textwidth 193.3truemm
  \columnsep 25pt
%  \ka@db@fontsize{12}{14.4pt}\ka@db@selectfont
%  \boxmaxdepth=0pt
%  \twocolumn
 \relax
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\startlabels}
%    \begin{macrocode}
\def\startlabels{%
  \nointerlineskip
  \labelcount=0
  \pagestyle{empty}
  \let\@texttop=\relax
% \topmargin -17.6truemm
% \headsep 0pt
% \oddsidemargin -12.3truemm
% \evensidemargin -12.3truemm
% \textheight 25.4truecm
% \advance\textheight by .0001truemm
% \@colht\textheight \@colroom\textheight \vsize\textheight
% \textwidth 193.3truemm
% \columnsep 25pt
% \ka@db@fontsize{12}{14.4pt}\ka@db@selectfont
% \boxmaxdepth=0pt
% \twocolumn\relax
  \@nameuse{lstyle@\@labelstyle}
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Processing of a single letter}
%
%  \begin{macro}{\ifka@db@inletter}
% This boolean variable is only true if we are inside a letter.
%    \begin{macrocode}
\newif\ifka@db@inletter
\ka@db@inletterfalse
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{letter}
%    The counter |letter| counts the number of letters.
%    \begin{macrocode}
\newcounter{letter}
%    \end{macrocode}
%  \end{macro}
%
% \begin{macro}{\letter}
%    \begin{macrocode}
\long\def\letter#1{%
  \ifka@db@inletter
    \ka@db@error{%
      Nested \string\begin \space \string letter are not allowed.
    }
  \fi
  \clearpage
  \refstepcounter{letter}
  \c@page\@ne
  \interlinepenalty=200
  \@processto{#1}%
  \ka@db@inlettertrue
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\endletter}
%    \begin{macrocode}
\def\endletter{%
%    \end{macrocode}
% \changes{0.0.0}{1994/02/09}{(KDB) Switch for last page added}
%    \begin{macrocode}
  \ka@db@lastpagetrue
%    \end{macrocode}
% \cmd\stopletter\ is a hook to insert commands in the \cmd\endletter.
%    \begin{macrocode}
  \stopletter
  \@@par
  \pagebreak
  \@@par
  \gdef\@yourmail{}
  \gdef\@mymail{}
  \global\@reflinefalse
  \if@filesw
    \begingroup
      \def\protect{\string}
      \let\\=\relax
      \def\protect##1{\string##1\space}
      \immediate\write\@auxout{\string\mlabel{\@backaddress}{\toname
      \\\toaddress}}
    \endgroup
  \fi
  \ka@db@inletterfalse
  }
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@processto}
%    \begin{macrocode}
\long\def\@processto#1{%
  \@xproc #1\\@@@%
  \ifx\toaddress\@empty
  \else
    \@yproc #1@@@%
  \fi}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@xproc}
%    \begin{macrocode}
\long\def\@xproc #1\\#2@@@{\def\toname{#1}\def\toaddress{#2}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@yproc}
%    \begin{macrocode}
\long\def\@yproc #1\\#2@@@{\def\toaddress{#2}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\stopbreaks}
%    \begin{macrocode}
\def\stopbreaks{\interlinepenalty \@M
 \def\par{\@@par\nobreak}\let\\=\@nobreakcr
 \let\vspace\@nobreakvspace}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@nobreakvspace}
%    \begin{macrocode}
\def\@nobreakvspace{\@ifstar{\@nobreakvspacex}{\@nobreakvspacex}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@nobreakvspacex}
%    \begin{macrocode}
\def\@nobreakvspacex#1{\ifvmode\nobreak\vskip #1\relax\else
 \@bsphack\vadjust{\nobreak\vskip #1}\@esphack\fi}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@nobreakcr}
%    \begin{macrocode}
\def\@nobreakcr{\vadjust{\penalty\@M}\@ifstar{\@xnewline}{\@xnewline}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\startbreaks}
%    \begin{macrocode}
\def\startbreaks{\let\\=\@normalcr
 \interlinepenalty 200\def\par{\@@par\penalty 200}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\labelcount}
%    \begin{macrocode}
\newcount\labelcount
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\if@refline}
%    \begin{macrocode}
\newif\if@refline
\@reflinefalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\if@toadrcenter}
%    \begin{macrocode}
\newif\if@toadrcenter
\@toadrcenterfalse
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\if@letterform}
% \begin{macro}{\letterform}
% \begin{macro}{\noletterform}
%    \begin{macrocode}
\newif\if@letterform
\@letterformfalse
\def\letterform{\@letterformtrue}
\def\noletterform{\@letterformfalse}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\centeraddress}
%    \begin{macrocode}
\def\centeraddress{\@toadrcentertrue}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\normaladdress}
%    \begin{macrocode}
\def\normaladdress{\@toadrcenterfalse}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\signature}
%    \begin{macrocode}
\def\signature#1{\def\@fromsig{#1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@fromsig}
%    \begin{macrocode}
\def\@fromsig{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\address}
%    \begin{macrocode}
\long\def\address#1{\def\@fromaddress{#1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@fromaddress}
%    \begin{macrocode}
\def\@fromaddress{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\footer}
%    \begin{macrocode}
\long\def\footer#1{\def\@footer{#1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@footer}
%    \begin{macrocode}
\def\@footer{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\returnaddress}
%    \begin{macrocode}
\def\returnaddress{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\place}
%    \begin{macrocode}
\def\place#1{\gdef\@place{#1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@place}
%    \begin{macrocode}
\def\@place{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\phone}
% \begin{macro}{\@prephone}
% \begin{macro}{\@phone}
% \begin{macro}{\@telephonenum}
%    \begin{macrocode}
\def\phone#1#2{%
  \gdef\@prephone{#1}%
  \gdef\@phone{#2}%
  \gdef\@telephonenum{#1#2}}
\def\@prephone{}
\def\@phone{}
\def\@telephonenum{}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\phonemsg}
%    \begin{macrocode}
\def\phonemsg{Telefon}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\date}
%    \begin{macrocode}
\def\date#1{\gdef\@date{#1}\gdef\@ntoday{#1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@date}
%    \begin{macrocode}
\def\@date{\today}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\sign}
%    \begin{macrocode}
\def\sign#1{\gdef\@mymail{#1}\@reflinetrue}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@mymail}
%    \begin{macrocode}
\def\@mymail{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\signmsg}
% \begin{macro}{\signmsgold}
% \begin{macro}{\signmsgnew}
%    \begin{macrocode}
\def\signmsgold{Unsere Zeichen}
\def\signmsgnew{Unsere Zeichen, unsere Nachricht vom}
\let\signmsg\signmsgold
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\datemsg}
%    \begin{macrocode}
\def\datemsg{Datum}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\yourmail}
%    \begin{macrocode}
\def\yourmail#1{\gdef\@yourmail{#1}\@reflinetrue}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@yourmail}
%    \begin{macrocode}
\def\@yourmail{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\yourmailmsg}
%    \begin{macrocode}
\def\yourmailmsg{Ihre Zeichen, Ihre Nachricht vom}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\writer}
%   This macro takes as argument the name of the writer (Sachbearbeiter)
%   and stores it in |\@writer|. It also toggles the the
%   |\@reflinetrue|-switch to get an referline and further
%   enables the layout of the new DIN draft standard 676 from May 1991.
%    \begin{macrocode}
\def\writer#1{\gdef\@writer{#1}\@reflinetrue\enabledraftstandard}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@writer}
%    \begin{macrocode}
\def\@writer{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\writermsg}
%    \begin{macrocode}
\def\writermsg{,\ Bearbeiter}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@concern}
%    \begin{macrocode}
\def\@concern{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\bottomtext}
% Defines the text which is printed on the bottom of the first page.
% This is used to include special informations such as the
% number of the giroconto, or the name of the chairman of a corporation.
%
% \changes{0.0.0}{1994/02/08}{(KDB) Defining macro \cmd\bottomtext\ putting
%                             the specified text into box \cmd\@@bottomtext\
%                             to get the height of the footer and store
%                             it in \cmd\@@bottomht}
%    \begin{macrocode}
\newbox\@@bottomtext
\setbox\@@bottomtext=\vbox to 0pt{}
\long\def\bottomtext#1{%
  \ifka@db@ltxtwoe \relax \else
      \@@warning{\string\bottomtext \space is reserving space for
                 typesetting its argument only in case of LaTeX 2e.
                 With other LaTeX formats you will have to place a
                 \string\clearpage-command at the appropriate position}%
  \fi
  \setbox\@@bottomtext=\hbox to 0pt{\hskip0pt minus 4truemm%
       \vbox{\raggedright #1}%
       \hss}%
%  \@@bottomht \ht\@@bottomtext}
  }
%    \end{macrocode}
%    \begin{macrocode}
% \long\def\bottomtext#1{\def\@@bottomtext{#1}}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@@bottomtext}
%    \begin{macrocode}
% \def\@@bottomtext{}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\document}
%    \begin{macrocode}
\def\document{%
  \endgroup
%    \end{macrocode}
%    If some options on |\documentclass| haven't been used by any
%    package we will now give a warning since this is most certainly a
%    misspelling.
%    \begin{macrocode}
  \ifka@db@ltxtwoe
    \ifx\@unusedoptionlist\@empty\else
      \@latex@warning@no@line{Unused global option(s):^^J%
              \@spaces[\@unusedoptionlist]}%
    \fi
  \fi
  \@colht\textheight
  \@colroom\textheight
  \vsize\textheight
  \columnwidth\textwidth
  \@clubpenalty\clubpenalty
  \if@twocolumn
    \advance\columnwidth -\columnsep
    \divide\columnwidth\tw@
    \hsize\columnwidth
    \@firstcolumntrue
  \fi
  \hsize\columnwidth
  \linewidth\hsize
  \begingroup
    \@floatplacement
    \@dblfloatplacement
  \endgroup
  \if@filesw
    \immediate\openout\@mainaux=\jobname@aux
    \immediate\write\@mainaux{\string\startlabels\string\@startlabels}%
  \fi
  \ifka@db@ltxtwoe
    \process@table
    \let\glb@currsize\@empty  %% Force math initialisation.
  \fi
  \@normalsize
  \everypar{}%
  \ifka@db@ltxtwoe
    \@noskipsecfalse
    \G@refundefinedfalse
  \fi
%    \end{macrocode}
%    Just before disabling the preamble commands we execute the begin
%    document hook which contains any code contributed by
%    |\AtBeginDocument|. Also disable the gathering of the file list,
%    if no |\listfiles| has been issued.
%    \begin{macrocode}
  \ifka@db@ltxtwoe
    \@begindocumenthook
    \let\@begindocumenthook\@undefined
    \ifx\@listfiles\@undefined
      \let\@filelist\relax
      \let\@addtofilelist\@gobble
    \fi
  \fi
%    \end{macrocode}
%    At the very end we disable all preamble commands. This has to
%    happen after the begin document hooks was executed so that this
%    hook can still use such commands.
%    |\AtBeginDocument|.
%
%    \begin{macrocode}
  \def\do##1{\let ##1\@notprerr}%
  \@preamblecmds
  \let\do\noexpand
}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\enddocument}
%    \begin{macrocode}
\def\enddocument{%
  \@checkend{document}
  \newpage
  \begingroup
    \if@filesw
      \immediate\closeout\@mainaux
      \makeatletter
      \input \jobname@aux
      \clearpage
    \fi
  \endgroup
  \deadcycles\z@
  \@@end}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\makelabels}
%    \begin{macrocode}
\def\makelabels{\@fileswtrue}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@startlabels}
%    \begin{macrocode}
\def\@startlabels{}
%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
\let\@texttop=\relax
%    \end{macrocode}
%
% \changes{}{1994/02/09}{(KDB)}
%  \begin{macro}{\ifka@db@lastpage}
%  The following switch is used by pagestyle |contheadings| to detect the
%  last page.
%    \begin{macrocode}
\newif\ifka@db@lastpage
\ka@db@lastpagefalse
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\ps@headings}
%    \begin{macrocode}
\def\ps@headings{
  \headheight=\ltf@headheight
  \headsep=\ltf@headsep
  \ifka@db@ltxtwoe
      \relax
    \else
      \footheight 0truemm
    \fi
  \footskip 0truemm
  \def\@oddhead{%
    \sl \headtoname\
    \ignorespaces\toname \hfil \@date
    \hfil \pagename{} \thepage}
  \def\@oddfoot{}
  \def\@evenhead{%
    \sl \headtoname\
    \ignorespaces\toname \hfil \@date
    \hfil \pagename{} \thepage}
  \def\@evenfoot{}}
%    \end{macrocode}
% \end{macro}
%
%  \begin{macro}{\ps@empty}
%    \begin{macrocode}
\def\ps@empty{%
  \headheight=\lts@headheight
  \headsep=\lts@headsep
  \ifka@db@ltxtwoe
      \relax
    \else
      \footheight 0truemm
    \fi
  \footskip 0truemm
  \def\@oddhead{}
  \def\@oddfoot{}
  \def\@evenhead{}
  \def\@evenfoot{}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\ps@first@page}
%    \begin{macrocode}
\def\ps@first@page{%
  \headheight=\lts@headheight
  \headsep=\lts@headsep
  \ifka@db@ltxtwoe
      \relax
    \else
      \footheight 4.2truemm
    \fi
  \footskip 8.8truemm
%    \end{macrocode}
%  We do not redefine the macros |\@oddfoot| and |\@evenfoot|.
%  So the first page gets the same layout in the foot as the
%  other pages.
%
%  We can talk about use of such a half pagestyle. So we provide
%  here a hook |psfirstpagehook| and the user can complete this
%  pagestyle (if he wishes) simply by doing:
%
%  \begin{quote}
%    |\def\psfirstpagehook{%|\\
%    |  \def\@oddfoot{}|\\
%    |  \def\@evenfoot{}}|
%  \end{quote}
%
%    \begin{macrocode}
  \def\@oddhead{}
  \def\@evenhead{}
  \expandafter\ifx\csname psfirstpagehook\endcsname\relax
    \else
      \psfirstpagehook
    \fi
}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\psfirstpagehook}
%    \begin{macrocode}
\def\psfirstpagehook{%
  \def\@oddfoot{}
  \def\@evenfoot{}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\ps@plain}
%    \begin{macrocode}
\def\ps@plain{%
  \headheight=\lts@headheight
  \headsep=\lts@headsep
  \ifka@db@ltxtwoe
      \relax
    \else
      \footheight 4.2truemm
    \fi
  \footskip 8.8truemm
  \def\@oddhead{}
  \def\@oddfoot{\hfil{\ka@db@fontshape{n}%
                      \ka@db@fontseries{m}\ka@db@selectfont\thepage}
                      \hfil}%
  \def\@evenhead{}
  \def\@evenfoot{}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{ps@myheadings}
%    \begin{macrocode}
\def\ps@myheadings{%\let\@mkboth\@gobbletwo
  \headheight=\ltf@headheight
  \headsep=\ltf@headsep
  \ifka@db@ltxtwoe
      \relax
    \else
      \footheight 0truemm
    \fi
  \footskip 0truemm
  \def\@oddhead{{\sl \rightmark}}%
  \def\@oddfoot{}
  \def\@evenhead{{\sl \leftmark}}%
  \def\@evenfoot{}}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{ps@contheadings}
%  \changes{}{1994/02/09}{(KDB)}
%  Like pagestyle 'headings' with pagenumber in top line and
%  number of following page in bottom line.
%
%  \smallskip
%  \changes{}{1994/02/10}{(KDB)}
%  Problem to be solved before this pagestyle can be introduced:
%    There must be found a method to detect the last page is typesetted
%    (endletter is not sufficient, since there may be another pagebreak when
%    \TeX\ has seen the command - due to an overfull page)
%    \begin{macrocode}
\def\ps@contheadings{%\let\@mkboth\@gobbletwo
  \headheight=\ltf@headheight
  \headsep=\ltf@headsep
  \ifka@db@ltxtwoe
      \relax
    \else
      \footheight 0truemm
    \fi
  \footskip 8.8truemm
  \def\@oddhead{{\sl \headtoname\ \ignorespaces\toname \hfil \@date
                \hfil\pagename{} \thepage}}%
  \def\@oddfoot{\ifka@db@lastpage \relax \else
                  \addtocounter{page}{1}%
                  \hfil--- \thepage{} ---\hfil%
                  \addtocounter{page}{-1}
                \fi}
  \def\@evenhead{{\sl \headtoname\ \ignorespaces\toname \hfil \@date
                \hfil\pagename{} \thepage}}%
  \def\@evenfoot{\ifka@db@lastpage \relax \else
                  \addtocounter{page}{1}%
                  ~\hfil--- \thepage{} ---~%
                  \addtocounter{page}{-1}
                \fi}}
%    \end{macrocode}
%  \end{macro}
%
% \subsection{Fonts --- paragraphing}
% These parameters control \TeX's behaviour when two lines tend
% to come too close together.
%
%    \begin{macrocode}
\lineskip 1pt
\normallineskip 1pt
%    \end{macrocode}
% \begin{macro}{\baselinestretch}
% This is used as a multiplier for |\baselineskip|. The default is
% {\em not\/} to stretch the baselines.
%    \begin{macrocode}
\def\baselinestretch{1}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\parskip}
%  \begin{macro}{\parindent}
%  |\parskip| gives extra vertical space between paragraphs and |\parindent|
%  is the width of the paragraph indentation.
%    \begin{macrocode}
\parskip .7em
\parindent 0pt
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%    \begin{macrocode}
\topsep .4em
\partopsep 0pt
\itemsep .4em
%    \end{macrocode}
%
%  \begin{macro}{\@lowpenalty}
%  \begin{macro}{\@medpenalty}
%  \begin{macro}{\@highpenalty}
%  The commands |\nopagebreak| and |\nolinebreak| put in penalties to
%  discourage these breaks at the point they are put in. They use
%  |\@lowpenalty|, |\@medpenalty| or |\@highpenalty|, dependant on their
%  argument.
%    \begin{macrocode}
\@lowpenalty 51
\@medpenalty 151
\@highpenalty 301
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%    \begin{macrocode}
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty
%    \end{macrocode}
%
% \subsection{Lists}
%
% \subsubsection{General list parameters}
%
% The following commands are used to set default values for the list
% environment's parameters. See the \LaTeX{} manual for an explanation
% of the meanings of these parameters.  Defaults for the list
% environment are set as follows.  First, |\rightmargin|,
% |\listparindent| and |\itemindent| are set to 0pt.  Then, for a Kth
% level list, the command |\@listK| is called, where `K' denotes `i',
% '`i', ... , `vi'.  (I.e., |\@listiii| is called for a third-level
% list.)  By convention, |\@listK| should set |\leftmargin| to
% |\leftmarginK|.
%
% \begin{macro}{\leftmargin}
% \begin{macro}{\leftmargini}
% \begin{macro}{\leftmarginii}
% \begin{macro}{\leftmarginiii}
% \begin{macro}{\leftmarginiv}
% \begin{macro}{\leftmarginv}
% \begin{macro}{\leftmarginvi}
% For efficiency, level-one list's values are defined at top level, and
% |\@listi| is defined to set only |\leftmargin|.
%
%    \begin{macrocode}
\leftmargini 2.5em
\leftmarginii 2.2em
\leftmarginiii 1.87em
\leftmarginiv 1.7em
\leftmarginv 1em
\leftmarginvi 1em
%    \end{macrocode}
%    Here we set the top level leftmargin.
%    \begin{macrocode}
\leftmargin\leftmargini
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\labelsep}
% \begin{macro}{\labelwidth}
%    |\labelsep| is the distance between the label and the text of an
%    item; |\labelwidth| is the width of the label.
%    \begin{macrocode}
\labelwidth\leftmargini
\advance\labelwidth-\labelsep
\labelsep 5pt
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
%    \begin{macrocode}
\parsep 0pt
%    \end{macrocode}
%
% \begin{macro}{\@listi}
%    \begin{macrocode}
\let\@listi\relax
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@listii}
% \begin{macro}{\@listiii}
% \begin{macro}{\@listiv}
% \begin{macro}{\@listv}
% \begin{macro}{\@listvi}
%    Here are the same macros for the higher level lists.
%    \begin{macrocode}
\def\@listii{%
  \leftmargin\leftmarginii
  \labelwidth\leftmarginii
  \advance\labelwidth-\labelsep}
\def\@listiii{%
  \leftmargin\leftmarginiii
  \labelwidth\leftmarginiii
  \advance\labelwidth-\labelsep
  \topsep .2em
  \itemsep \topsep}
\def\@listiv{%
  \leftmargin\leftmarginiv
  \labelwidth\leftmarginiv
  \advance\labelwidth-\labelsep}
\def\@listv{%
  \leftmargin\leftmarginv
  \labelwidth\leftmarginv
  \advance\labelwidth-\labelsep}
\def\@listvi{%
  \leftmargin\leftmarginvi
  \labelwidth\leftmarginvi
  \advance\labelwidth-\labelsep}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
%
% \subsubsection{Enumerate}
%
%    The enumerate environment uses  four counters: \Lcount{enumi},
%    \Lcount{enumii}, \Lcount{enumiii} and \Lcount{enumiv}, where
%    \Lcount{enumN} controls the numbering of the Nth level
%    enumeration.
%
% \begin{macro}{\theenumi}
% \begin{macro}{\theenumii}
% \begin{macro}{\theenumiii}
% \begin{macro}{\theenumiv}
%    The counters are already defined in \file{latex.tex}, but their
%    representation is changed here.
%
%    \begin{macrocode}
\def\theenumi{\arabic{enumi}}
\def\theenumii{\alph{enumii}}
\def\theenumiii{\roman{enumiii}}
\def\theenumiv{\Alph{enumiv}}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\labelenumi}
% \begin{macro}{\labelenumii}
% \begin{macro}{\labelenumiii}
% \begin{macro}{\labelenumiv}
%    The label for each item is generated by the commands \hfil\break
%    |\labelenumi| ... |\labelenumiv|.
%    \begin{macrocode}
\def\labelenumi{\arabic{enumi}.}
\def\labelenumii{(\alph{enumii})}
\def\labelenumiii{\roman{enumiii}.}
\def\labelenumiv{\Alph{enumiv}.}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\p@enumii}
% \begin{macro}{\p@enumiii}
% \begin{macro}{\p@enumiv}
%    The expansion of |\p@enumN||\theenumN| defines the output of a
%    |\ref| command when referencing an item of the Nth level of an
%    enumerated list.
%    \begin{macrocode}
\def\p@enumii{\theenumi}
\def\p@enumiii{\theenumi(\theenumii)}
\def\p@enumiv{\p@enumiii\theenumiii}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsubsection{Itemize}
%
% \begin{macro}{\labelitemi}
% \begin{macro}{\labelitemii}
% \begin{macro}{\labelitemiii}
% \begin{macro}{\labelitemiv}
% Itemization is controlled by four commands: |\labelitemi|,
% |\labelitemii|, |\labelitemiii|, and |\labelitemiv|, which define
% the labels of thevarious itemization levels: the symbols used are
% bullet, bold en-dash, asterisk and centred dot.
%
%    \begin{macrocode}
\def\labelitemi{$\bullet$}
\def\labelitemii{\bf --}
\def\labelitemiii{$\ast$}
\def\labelitemiv{$\cdot$}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsubsection{Description}
%
% \begin{macro}{\description}
% \begin{macro}{\descriptionlabel}
% \begin{macro}{\enddescription}
%    The description environment is defined here -- while the itemize
%    and enumerate environments are defined in \file{latex.tex}.
%
%    To change the formatting of the label, you must redefine
%    |\descriptionlabel|.
%
%    \begin{macrocode}
\def\descriptionlabel#1{%
  \hspace\labelsep \bf #1}
\def\description{%
  \list{}{\labelwidth\z@ \itemindent-\leftmargin
          \let\makelabel\descriptionlabel}}
\let\enddescription\endlist
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \subsubsection{Verse}
%
% \begin{macro}{\verse}
% \begin{macro}{\endverse}
%   The verse environment is defined by making clever use of the
%   list environment's parameters.  The user types |\\| to end a line.
%   This is implemented by |\let|'ing |\\| equal |\@centercr|.
%
%    \begin{macrocode}
\def\verse{\let\\=\@centercr
  \list{}{\itemsep\z@
          \itemindent -15pt
          \listparindent \itemindent
          \rightmargin\leftmargin
          \advance\leftmargin 15pt}\item[]}
\let\endverse\endlist
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsubsection{Quotation}
%
% \begin{macro}{\quotation}
% \begin{macro}{\endquotation}
%   The quotation environment is also defined by making clever use of
%   the list environment's parameters. The lines in the environment
%   are set smaller than |\textwidth|. The first line of a paragraph
%   inside this environment is indented.
%
%    \begin{macrocode}
\def\quotation{%
  \list{}{\listparindent 1.5em
          \itemindent\listparindent
          \rightmargin\leftmargin}%
  \item[]}
\let\endquotation=\endlist
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsubsection{Quote}
%
% \begin{macro}{\quote}
% \begin{macro}{\endquote}
%   The quote environment is like the quotation environment except
%   that paragraphs are not indented.
%
%    \begin{macrocode}
\def\quote{%
  \list{}{\rightmargin\leftmargin}%
  \item[]}
\let\endquote=\endlist
%    \end{macrocode}
% \end{macro}
% \end{macro}
%
% \subsection{Setting parameters for existing environments}
%
% \subsubsection{Array and tabular}
%
% \begin{macro}{\arraycolsep}
%    The columns in an array environment are separated by
%    2|\arraycolsep|.
%    \begin{macrocode}
\arraycolsep 5pt
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\tabcolsep}
%    The columns in an tabular environment are separated by
%    2|\tabcolsep|.
%    \begin{macrocode}
\tabcolsep 6pt
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\arrayrulewidth}
%    The width of rules in the array and tabular environments is given
%    by \hfil\break
%    |\arrayrulewidth|.
%    \begin{macrocode}
\arrayrulewidth .4pt
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\doublerulesep}
%    The space between adjacent rules in the array and tabular
%    environments is given by |\doublerulesep|.
%    \begin{macrocode}
\doublerulesep 2pt
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{Tabbing}
%
% \begin{macro}{\tabbingsep}
%    This controls the space that the |\'| command puts in. (See
%    \LaTeX{} manual for an explanation.)
%    \begin{macrocode}
\tabbingsep \labelsep
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{Minipage}
%
% \begin{macro}{\@minipagerestore}
%    The macro |\@minipagerestore| is called upon entry to a minipage
%    environment to set up things that are to be handled differently
%    inside a minipage environment. In the current styles, it does
%    nothing.
% \end{macro}
%
% \begin{macro}{\@mpfootins}
%    Minipages have their own footnotes; |\skip||\@mpfootins| plays
%    the same r\^ole for footnotes in a minipage as |\skip||\footins| does
%    for ordinary footnotes.
%
%    \begin{macrocode}
\skip\@mpfootins = \skip\footins
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{Framed boxes}
%
% \begin{macro}{\fboxsep}
%    The space left by |\fbox| and |\framebox| between the box and the
%    text in it.
%    \begin{macrocode}
\fboxsep = 3pt
%    \end{macrocode}
% \end{macro}
% \begin{macro}{\fboxrule}
%    The width of the rules in the box made by |\fbox| and |\framebox|.
%    \begin{macrocode}
\fboxsep = 3pt
\fboxrule = .4pt
%    \end{macrocode}
% \end{macro}
%
% \subsubsection{Equation and eqnarray}
%
% \begin{macro}{\theequation}
%    The equation counter will be reset at beginning of a new letter.
%    The equation counter will be typeset using arabic numbers.
%
%    \begin{macrocode}
\def\theequation{\arabic{equation}}
\@addtoreset{equation}{letter}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\jot}
%    |\jot| is the extra space added between lines of an eqnarray
%    environment. The default value is used.
%    \begin{macrocode}
% \setlength\jot{3pt}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@eqnnum}
%    The macro |\@eqnnum| defines how equation numbers are to appear in
%    equations. Again the default is used.
%
%    \begin{macrocode}
% \def\@eqnnum{(\theequation)}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Footnotes}
%
% \begin{macro}{\footnoterule}
%    Usually, footnotes are separated from the main body of the text
%    by a small rule. This rule is drawn by the macro |\footnoterule|.
%    We have to make sure that the rule takes no vertical space (see
%    \file{plain.tex}) so we compensate for the natural heigth of the
%    rule of 0.4pt by adding the right amount of vertical skip.
%
%    To prevent the rule from colliding with the footnote we first add
%    a little negative vertical skip, then we put the rule and make
%    sure we end up at the same point where we begun this operation.
%    \begin{macrocode}
\def\footnoterule{%
  \kern-1\p@
  \hrule width .4\columnwidth
  \kern .6\p@}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\c@footnote}
%    The dinbrief style/class does not use this macro.
%
%    (Footnotes are numbered within chapters in the report and book
%    document styles.)
% \end{macro}
%
% \begin{macro}{\@makefntext}
%    The footnote mechanism of \LaTeX{} calls the macro |\@makefntext|
%    to produce the actual footnote. The macro gets the text of the
%    footnote as its argument and should use |\@thefnmark| as the mark
%    of the footnote. The macro |\@makefntext| is called when
%    effectively inside a |\parbox| of width |\columnwidth| (i.e.,
%    with |\hsize| = |\columnwidth|).
%
%   An example of what can be achieved is given by the following piece
%   of \TeX\ code.
%    \begin{macrocode}
%          \long\def\@makefntext#1{%
%             \@setpar{\@@par
%                      \@tempdima = \hsize
%                      \advance\@tempdima-10pt
%                      \parshape \@ne 10pt \@tempdima}%
%             \par
%             \parindent 1em\noindent
%             \hbox to \z@{\hss$\m@th^{\@thefnmark}$}#1}
%    \end{macrocode}
%    The effect of this definition is that all lines of the footnote
%    are indented by 10pt, while the first line of a new paragraph is
%    indented by 1em. To change these dimensions, just substitute the
%    desired value for `10pt' (in both places) or `1em'.  The mark is
%    flushright against the footnote.
%
%    In this document class we use a simpler macro, in which the
%    footnote text is set like an ordinary text paragraph, with no
%    indentation except on the first line of a paragraph, and the
%    first line of the footnote. Thus, all the macro must do is set
%    |\parindent| to the appropriate value for succeeding paragraphs
%    and put the proper indentation before the mark.
%
%    \begin{macrocode}
% \long\def\@makefntext#1{%
%     \parindent 1em%
%     \noindent
%     \hbox to 1.8em{\hss$\m@th^{\@thefnmark}$}#1}
%    \end{macrocode}
%  \end{macro}
%  \begin{macro}{\@makefntext}
%    \begin{macrocode}
\long\def\@makefntext#1{%
  \noindent
  \hangindent 5pt%
  \hbox  to 5pt{\hss $^{\@thefnmark}$}#1}
%    \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@makefnmark}
%    The footnote markers printed in the text to point to the
%    footnotes should be produced by the macro |\@makefnmark|. We use
%    the default definition for it.
%    \begin{macrocode}
%\def\@makefnmark{\hbox{$^{\@thefnmark}\m@th$}}
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
\c@topnumber=2
\def\topfraction{.7}
\c@bottomnumber=1
\def\bottomfraction{.3}
\c@totalnumber=3
\def\textfraction{.2}
\def\floatpagefraction{.5}
\c@dbltopnumber= 2
\def\dbltopfraction{.7}
\def\dblfloatpagefraction{.5}
%    \end{macrocode}
%
% \subsection{The current date}
%
% \begin{macro}{\today}
%    \begin{macrocode}
\def\today{\number\day.\space\ifcase\month\or
  Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
  Juli\or August\or September\or Oktober\or November\or Dezember\fi
  \space\number\year}
%    \end{macrocode}
% \end{macro}
%    \begin{macrocode}
\newcount\yearcnt
\yearcnt=\year
\advance\yearcnt-\number1900
\def\@znumber#1{\ifnum\number#1<10 0\number#1\else\number#1\fi}
\def\@ntoday{\@znumber{\number\day}.%
             \@znumber{\number\month}.%
             \@znumber{\the\yearcnt}}
%
\def\up#1{\leavevmode \raise.16ex\hbox{#1}}
%    \end{macrocode}
%
% \begin{macro}{\concern}
% \changes{}{1994/12/14}{(RG) \cmd\newbox\cmd\@betr being moved outside of
%                        \cmd\concern}
%    \begin{macrocode}
\newbox\@betr
\long\def\concern#1{%
  \setbox\@betr=\hbox{}
  \def\@concern{\hangindent=\wd\@betr
                \hangafter=1
                \unhbox\@betr #1\par}}
%    \end{macrocode}
% \end{macro}
%
%  \begin{macro}{\@fordate}
%  |\@fordate| is the length of the remaining part of the
%  referline.
%    \begin{macrocode}
\newlength{\@fordate}
\setlength{\@fordate}{\textwidth}
\addtolength{\@fordate}{-131truemm}
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\@answertoold}
%    The macro \cmd\@answertoold is used to typeset the referline in the
%    original DIN 676 style.
%
%    The length \cmd\@fordate\ is the width of the field for date
%    and place. This length is being determined by subtracting the
%    length of the other fields (50,8mm + 50,8mm + 25,4mm + 4mm)
%    131 mm from \cmd\textwidth. (why 4mm?)
%
%    \begin{macrocode}
\def\@answertoold{%
  \setlength{\@fordate}{\textwidth}
  \addtolength{\@fordate}{-131truemm}
  \parbox[b]{50.8truemm}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
                          \yourmailmsg{}}%
                         \hfill\\ \@yourmail\hbox{}\hss}%
  \parbox[b]{50.8truemm}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
                          \signmsg{}}%
                         \hfill\\ \@mymail\hbox{}\hss}%
  \parbox[b]{25.4truemm}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
                          \phonemsg{} \@prephone{}}%
                         \hfill\\ \@phone\hbox{}\hss}%
  \parbox[b]{\@fordate}{{\ka@db@fontsize{9}{11pt}\ka@db@selectfont
    \ifx\@empty\@place
       \vphantom{K}\rule{2pt}{0pt}
     \else
       \@place{}%
     \fi
    }\hfill\\ \@ntoday}
  }
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\@answertonew}
%  The draft proposal of the new DIN 676 has an additional
%  field for the name of a person who has written the letter.
%
%  The new DIN 676 (draft) has a big disadvantage. The referline
%  is larger than the normal \cmd\textwidth. So we have to add some
%  extra space to this box. This code should be rewritten.
%  Currently, it is just a hack.
%
%    \begin{macrocode}
\def\@answertonew{%
  \hbox to \textwidth{%
    \setlength{\@fordate}{\textwidth}%
    \addtolength{\@fordate}{-156.4truemm}%
    \addtolength{\@fordate}{3cm}% This is a heavens value.
    \parbox[b]{50.8truemm}{{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
                            \yourmailmsg{}}%
                           \hfill\\ \@yourmail\hbox{}\hss}%
    \parbox[b]{50.8truemm}{{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
                            \signmsg{}}%
                           \hfill\\ \@mymail\hbox{}\hss}%
    \parbox[b]{50.8truemm}{{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
                            \phonemsg{}%
                            \writermsg{}%
                            }%
                           \hfill\\
                           \ifx\@empty\@prephone\relax
                           \else
                             \@prephone{}
                           \fi
                           \@phone
                           \ifx\@empty\@writer\relax
                           \else
                             \ifx\@empty\@phone\relax
                             \else
                             ,\ % insert comma and blank only if both
                             \fi% are nonempty
                             \@writer
                           \fi
                           \hbox{}\hss}%
    \parbox[b]{\@fordate}{{\ka@db@fontsize{7}{9pt}\ka@db@selectfont
      \datemsg
      }\hfill\\ \@ntoday}
    \hss}%
  }
%    \end{macrocode}
%  \end{macro}
%
%  \begin{macro}{\enabledraftstandard}
%  \begin{macro}{\disabledraftstandard}
%  \begin{macro}{\@answerto}
%  \changes{0.94.1}{1994/08/14}{\cmd\enabledraftstandard and
%                               \cmd\disabledraftstandard
%                               introduced.}
%  The macros \cmd\enabledraftstandard\ and \cmd\disabledraftstandard\
%  are used to switch between the two DIN versions 676 (the old and the
%  draft one). This is simply done by letting the \cmd\@answerto pointing to
%  \cmd\@answertoold or \cmd\@answertonew.
%
%  By default, we use the old version and therefore the german standard.
%
%    \begin{macrocode}
\def\enabledraftstandard{%
  \let\signmsg=\signmsgnew
  \let\@answerto=\@answertonew
}
%
\def\disabledraftstandard{%
  \let\signmsg=\signmsgold
  \let\@answerto=\@answertoold
}
%
\disabledraftstandard
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% \subsection{More initializations}
%
% We initially choose the normalsize font.
% This code has to be executed following the definition of |\baselinestretch|
% if the original \LaTeX\ font selection scheme is used.
%    \begin{macrocode}
\ifka@db@nfss
  \else
    \ifka@db@nfsstwo
      \else
        \normalsize
      \fi
  \fi
%    \end{macrocode}
%
%    \begin{macrocode}
\smallskipamount=.5\parskip
\medskipamount=\parskip
\bigskipamount=2\parskip
%    \end{macrocode}
%
%    \begin{macrocode}
\ps@plain
\pagenumbering{arabic}
\onecolumn
\@fileswfalse
%    \end{macrocode}
%
%    \begin{macrocode}
%</class|style>
%    \end{macrocode}
%
% \subsection{The short class file/the short style file}
%   This file only inputs the dinbrief.sty file.
%
%    \begin{macrocode}
%<*shortclass>
\input dinbrief.sty
%</shortclass>
%    \end{macrocode}
%
%   This file only inputs the dinbrief.cls file.
%
%    \begin{macrocode}
%<*shortstyle>
\input dinbrief.cls
%</shortstyle>
%    \end{macrocode}
%
% \section{An example letter}
%
% \subsection{The letter head}
%
%    \begin{macrocode}
%<*brfkopf>
%    \end{macrocode}
%    \begin{macrocode}
%
\newlength{\UKAwd}
\newlength{\ADDRwd}
%
\font\fa=cmcsc10  scaled 1440
\font\fb=cmss12   scaled 1095
\font\fc=cmss10   scaled 1000
%
\def\briefkopf{
 \settowidth{\UKAwd}{\fa Institut f"ur Verpackungen}
 \settowidth{\ADDRwd}{\fc EARN/BITNET: yx99 at dkauni2}
 \expandafter\ifx\csname fontsize\endcsname\relax\else
   \fontsize{12}{14.4pt}\selectfont
 \fi
%
 \raisebox{-11.3mm}{%
   \setlength{\unitlength}{1truemm}
   \begin{picture}(15,15)(0,0)
     \thicklines
     \put(7.5,7.5){\circle{15}}
     \put(7.5,7.5){\circle{10}}
     \put(7.5,7.5){\circle{ 5}}
   \end{picture}%
 }
 \vspace*{7truemm}
 {\fc\hspace{.2em}}
 \parbox[t]{\UKAwd}{\centering{\fa Universit\"at Gralsruhe} \\
                    \centering{\fa Institut f"ur Verpackungen} \\[.5ex]
                    \centering{\fb Prof.\ Dr.\ Fritz Schreiber} }
 \hfill
 \parbox[t]{\ADDRwd}{\fc Im Hinterhof 2 $\cdot$ Postfach 8960 \\
                     \fc D--76821 Gralsruhe \\
                     \fc Telefon: (0127) 806-0815 \\
                     \fc Electronic Mail: \\
                     \fc EARN/BITNET: yx99 at error2 }
 }
%
\signature{Prof.\ Dr.\ Fritz Schreiber}
\place{Gralsruhe}
\address{\briefkopf}
\phone{(0127)}{806-0815}
\def\FS{Prof.\,F.\,Schreiber, Uni.\,Gralsruhe,
        Postf.\,8960, 76821\,Gralsruhe\rule[-1ex]{0pt}{0pt}}

%    \end{macrocode}
%    \begin{macrocode}
%</brfkopf>
%    \end{macrocode}
%
% \subsection{The letter}
%    \begin{macrocode}
%<*example>
%    \end{macrocode}
% This will be a letter.
%    \begin{macrocode}

\expandafter\ifx\csname documentclass\endcsname\relax
    \documentstyle[german]{dinbrief}
  \else
    \documentclass[10pt]{dinbrief}
    \usepackage{german}
  \fi

\input brfkopf

% \makelabels
% \labelstyle{deskjet}

\pagestyle{contheadings}

\begin{document}

\bottomtext{%
  \makebox[\textwidth][c]{\small\sf
   Bankverbindung $\cdot$ Kreissparkasse Gralsruhe %
   (BLZ~999~500~00) 98~765~4
  }
}

\date{9.~Juli 1999}

\setlength{\topmargin}{-15pt}
\backaddress{\FS}

\begin{letter}{Prof.\ Dr.\ Hans Forschegut\\
               Institut f"ur Abfallbeseitigung\\
               Fachhochschule Waldstadt\\
               Postfach 3322\\[\medskipamount]
               1100 Waldstadt}
\yourmail{\ }
\concern{Bitte um "Uberlassung einer Sammlung von Alka-Seltzer Flaschen}

\opening{Sehr geehrter Herr Prof.\ Forschegut,}

von Kollegen habe ich erfahren, da"s sich bei Ihnen eine gro"se
Anzahl von Alka-Seltzer Flaschen mit nur noch einer Tablette
angesammelt hat, da eine Flasche 25~Tabletten enth"alt, der
Beipackzettel aber angibt, da"s stets 2~Tabletten gleichzeitig
einzunehmen sind.

Ich forsche gerade im Bereich m"oglicher Anwendungen einzelner
Schmerztabletten. Falls Sie so freundlich w"aren, Ihre Alka-Seltzer
Sammlung f"ur unser Projekt zu stiften, w"urde ich Ihnen gerne
Vorabdrucke aller zuk"unftigen Forschungsberichte zur Verf"ugung
stellen, die wir "uber dieses kritische Problem ver"offentlichen.

\closing{Mit freundlichen Gr"u"sen}

\ps{Falls Sie es w"unschen, lasse ich "uberpr"ufen, ob Sie Ihre
    Schenkung in Verbindung mit unserer Forschung von der Steuer
    absetzen k"onnen.}
\encl{Forschungsbericht Nr.\ 6/99 des IfA}
\cc{Future Pharma\\
    Bundesministerium zur Unterst"utzung der Pharmaindustrie}

\end{letter}                                                                    

\end{document}
%    \end{macrocode}
%
%    \begin{macrocode}
%</example>
%    \end{macrocode}
%
% \section{Testing the class/style}
%
%    \begin{macrocode}
%<*brfbody>
%    \end{macrocode}
%    \begin{macrocode}
\yourmail{\ }
\concern{Bitte um "Uberlassung einer Sammlung von Alka-Seltzer Flaschen}

\opening{Sehr geehrter Herr Prof.\ Forschegut,}

von Kollegen habe ich erfahren, da"s sich bei Ihnen eine gro"se
Anzahl von Alka-Seltzer Flaschen mit nur noch einer Tablette
angesammelt hat, da eine Flasche 25~Tabletten enth"alt, der
Beipackzettel aber angibt, da"s stets 2~Tabletten gleichzeitig
einzunehmen sind.

Ich forsche gerade im Bereich m"oglicher Anwendungen einzelner
Schmerztabletten. Falls Sie so freundlich w"aren, Ihre Alka-Seltzer
Sammlung f"ur unser Projekt zu stiften, w"urde ich Ihnen gerne
Vorabdrucke aller zuk"unftigen Forschungsberichte zur Verf"ugung
stellen, die wir "uber dieses kritische Problem ver"offentlichen.

{\bf Testing \verb|itemize|}\hfil\break
\begin{itemize}
  \item Dies ist ein \verb|\item|.
        \begin{itemize}
          \item \verb|\item| in Level 2.
          \item
                \begin{itemize}
                  \item \verb|\item| in Level 3.
                \end{itemize}
        \end{itemize}
  \item Zweites \verb|\item|.
\end{itemize}

{\bf Testing \verb|enumerate|}\hfil\break
\begin{enumerate}
  \item Dies ist ein \verb|\item|.
        \begin{enumerate}
          \item \verb|\item| in Level 2.
          \item
                \begin{enumerate}
                  \item \verb|\item| in Level 3.
                \end{enumerate}
        \end{enumerate}
  \item Zweites \verb|\item|.
\end{enumerate}

{\bf Testing \verb|description|}\hfil\break
\begin{description}
  \item[First] Dies ist ein \verb|\item|.
        \begin{description}
          \item[Second] \verb|\item| in Level 2.
          \item[Third]
                \begin{description}
                  \item[Fourth] \verb|\item| in Level 3.
                \end{description}
        \end{description}
  \item[Second] Zweites \verb|\item|.
\end{description}

{\bf Testing Lists}\hfil\break
\begin{description}
  \item[First] Dies ist ein \verb|\item|.
        \begin{itemize}
          \item \verb|\item| in Level 2.
          \item
                \begin{enumerate}
                  \item[Fourth] \verb|\item| in Level 3.
                \end{enumerate}
        \end{itemize}
  \item[Second] Zweites \verb|\item|.
  \item[Third]
        \begin{enumerate}
          \item Brain damaged \LaTeX.
          \item Why is there so large distance between the label and
                the first number?
        \end{enumerate}
\end{description}

{\bf Testing \verb|verse|}\hfil\break
\begin{verse}
{\bf Die F"u"se im Feuer\/}

Wild zuckt der Blitz,\\
im fahlen Lichte steht ein Turn,\\
der Donner rollt,\\
ein Reiter k"ampft mit seinem Ro"s,\\
springt ab un pocht ans Tor und l"armt.\\
Sein Mantel saust im Wind,\\
und knarrent "offnet jetzt das Tor ein Edelmann.\\
\dots\\
Der Reiter tritt in einen dunklen Ahnensaal.

Von eines weiten Herdes Feuer schwach erhellt,\\
droht hier ein Hugenott im Harnisch,\\
dort ein Weib, ein stolzes Weib in braunen Ebenbild.\\
Der Reiter wirft sich in den Sessel vor dem Herd\\
und starrt in den lebendgen Brand\\
\dots \\
Die Flamme zischt, zwei F"u"se zucken in der Glut.

\dots
\end{verse}

{\bf Testing \verb|quotation|}\hfil\break
\begin{quotation}
``Ich finde'', sagte einst Winston Churchill im
Unterhaus, ``die Art von Kritik, wie ich sie am
Sonntagmorgen bei meiner Ankunft in den Zeitungen
fand, erinnert mich immer an die Geschichte von
dem Matrosen, der in ein Hafenbecken sprang ---
in Plymouth, glaube ich ---, um einen kleinen
Jungen vom Ertrinken zu retten.

Dort sprach eine Frau den Matrosen an:\\
`Sind Sie der Mann, der meinen Sohn neulich
aus dem Wasser gezogen hat?'\\
Bescheiden erwiderte der Matrose:\\
`Ja, das stimmt.'\\
`Aha', sagte die Frau: `Ich suche Sie schon
die ganze Zeit \dots\ Wo ist seine M"utze?'{}''
\end{quotation}

{\bf Testing \verb|quote|}\hfil\break
\begin{quote}
Ein {\em klassisches\/} Werk ist ein Buch,\\
das die Leute loben,\\
aber nie lesen. \hfill({\em E.\ Hemingway\/})
\end{quote}

{\bf Testing \verb|equation|}\hfil\break
\begin{equation}
  x^2 = y^2 + z^2
\end{equation}

{\bf Testing \verb|tabular|}\hfil\break

{\bf Testing \verb|tabbing|}\hfil\break

\closing{Mit freundlichen Gr"u"sen}

\ps{Falls Sie es w"unschen, lasse ich "uberpr"ufen, ob Sie Ihre
    Schenkung in Verbindung mit unserer Forschung von der Steuer
    absetzen k"onnen.}
\encl{Forschungsbericht Nr.\ 6/99 des IfA}
\cc{Future Pharma\\
    Bundesministerium zur Unterst"utzung der Pharmaindustrie}

%    \end{macrocode}
%    \begin{macrocode}
%</brfbody>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*10pt>
%    \end{macrocode}
%    \begin{macrocode}
\expandafter\ifx\csname documentclass\endcsname\relax
    \documentstyle[german]{dinbrief}
    \typeout{Using the command \string\documentstyle.}
  \else
    \documentclass[10pt]{dinbrief}
    \usepackage{german}
    \typeout{Using the command \string\documentclass.}
  \fi
%    \end{macrocode}
%    \begin{macrocode}
%</10pt>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*11pt>
%    \end{macrocode}
%    \begin{macrocode}
\expandafter\ifx\csname documentclass\endcsname\relax
    \documentstyle[11pt,german]{dinbrief}
    \typeout{Using the command \string\documentstyle.}
  \else
    \documentclass[11pt]{dinbrief}
    \usepackage{german}
    \typeout{Using the command \string\documentclass.}
  \fi
%    \end{macrocode}
%    \begin{macrocode}
%</11pt>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*12pt>
%    \end{macrocode}
%    \begin{macrocode}
\expandafter\ifx\csname documentclass\endcsname\relax
    \documentstyle[12pt,german]{dinbrief}
    \typeout{Using the command \string\documentstyle.}
  \else
    \documentclass[12pt]{dinbrief}
    \usepackage{german}
    \typeout{Using the command \string\documentclass.}
  \fi
%    \end{macrocode}
%    \begin{macrocode}
%</12pt>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*norm>
%    \end{macrocode}
%    \begin{macrocode}
\expandafter\ifx\csname documentclass\endcsname\relax
    \documentstyle[norm,german]{dinbrief}
    \typeout{Using the command \string\documentstyle.}
  \else
    \documentclass[norm]{dinbrief}
    \usepackage{german}
    \typeout{Using the command \string\documentclass.}
  \fi
%    \end{macrocode}
%    \begin{macrocode}
%</norm>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*test>
%    \end{macrocode}
%    \begin{macrocode}
\input brfkopf.tex

\newcommand{\oneletter}{%
\begin{letter}{%
Herrn Professor\\
Dr.\ Hans Forschegut\\
Institut f"ur Abfallbeseitigung\\
Fachhochschule Waldstadt\\
Postfach 3322\\[\medskipamount]
{\bf 1100 Waldstadt}}

\input brfbody.tex

\end{letter}

}

\begin{document}

\bottomtext{%
  \makebox[\textwidth][c]{\small\sf
   Bankverbindung $\cdot$ Kreissparkasse Gralsruhe %
   (BLZ~999~500~00) 98~765~4
  }
}

\backaddress{\FS}

\pagestyle{empty}

\enabledraftstandard

\oneletter

\disabledraftstandard

\oneletter

\pagestyle{plain}

\writer{Gussmann}

\enabledraftstandard

\oneletter

\disabledraftstandard

\oneletter

\pagestyle{headings}

\writer{Gussmann}

\enabledraftstandard

\oneletter

\disabledraftstandard

\oneletter

\pagestyle{contheadings}

\enabledraftstandard

\oneletter

\disabledraftstandard

\oneletter

%    \end{macrocode}
%    \begin{macrocode}
%</test>
%    \end{macrocode}
%
%    \begin{macrocode}
%<*10pt|11pt|12pt|norm>
\end{document}
%</10pt|11pt|12pt|norm>
%    \end{macrocode}
%
% \section{The documentation driver file}
%
%    We have our own document class to format the \LaTeXe
%    documentation.
% \changes{1.0.6}{1993/12/07}{Use class ltxdoc document class}
%    \begin{macrocode}
%<*driver>
\documentclass{ltxdoc}
\usepackage{german}
\originalTeX
%    \end{macrocode}
%
%    We don't want everything to appear in the index
%    \begin{macrocode}
\DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
\DoNotIndex{\@centercr,\@cite}
\DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
\DoNotIndex{\@input,\@ixpt,\@m}
\DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint}
\DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
\DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
\DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
\DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
\DoNotIndex{\advance,\Alph,\alph}
\DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
\DoNotIndex{\bullet}
\DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
\DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
\DoNotIndex{\DoNotIndex,\egroup,\else,\em,\endtrivlist}
\DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
\DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
\DoNotIndex{\fbox,\fi}
\DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
\DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
\DoNotIndex{\hsize,\hskip\hspace,\hss,\if@tempswa,\ifcase,\ifdim}
\DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\input}
\DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
\DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
\DoNotIndex{\month,\newcommand,\newcounter,\newenvironment,\newif}
\DoNotIndex{\NeedsTeXFormat,\newdimen}
\DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
\DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\or,\p@}
\DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
\DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
\DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
\DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font}
\DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman}
\DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength}
\DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
\DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
\DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
\DoNotIndex{\viipt,\vipt,\vskip,\vspace}
\DoNotIndex{\wd,\xiipt,\year,\z@}
%    \end{macrocode}
%    We do want an index, using linenumbers
%    \begin{macrocode}
\EnableCrossrefs
%    \end{macrocode}
%    We also want the full details.
%    \begin{macrocode}
\begin{document}
\DocInput{dinbrief.dtx}
\PrintIndex
% ^^A\PrintChanges
\end{document}
%</driver>
%    \end{macrocode}
%
%    End each file with |\endinput|.
%    \begin{macrocode}
\endinput
%    \end{macrocode}
%
\endinput
# Local Variables:
# mode: latex
# End:
